相同文件夹下ImportError

70 阅读1分钟

在Python项目中,如果想直接导入模块,而不是使用相对路径或包名称,需要确保项目目录被正确地识别为一个包。通常,目录结构应该包含一个 __init__.py 文件,使Python解释器能够将其识别为一个包。

  1. 添加 __init__.py 文件:确保在 your_project 目录中有一个 __init__.py 文件,即使它是空的。这会使 your_project 被识别为一个包。

  2. 检查导入路径:确保的工作目录是在项目的根目录,也就是 your_project 的上一级目录。

  3. 运行脚本:当运行脚本时,确保是在 your_project 目录的上一级目录中执行命令的。也就是说,应该在 your_project 的上一级目录中执行命令,比如 python your_project/your_script.py

  4. 修改导入语句:根据描述,如果想从 log.py 中导入 log_system,需要使用包名。因此,your_script.py 中的导入语句应该是 from your_project.log import log_system

这里是一个示例目录结构和代码片段:

your_project/
│
├── __init__.py
├── log.py
└── your_script.py

log.py 文件:

def log_system():
    print("Logging system initialized.")

your_script.py 文件:

from your_project.log import log_system

log_system()

确保在 your_project 的上一级目录中运行以下命令:

python your_project/your_script.py

这样,Python会正确地识别和导入模块。