Python 模块导入和包管理
在 Python 中,如果你想让同级文件夹中的两个文件相互导入,可以使用相对导入或绝对导入。
假设你有以下目录结构:
markdown
复制代码
project/
│
├── a/
│ ├── __init__.py
│ └── a.py
│
└── b/
├── __init__.py
└── b.py
现在,你想要在 file1.py
中导入 file2.py
中的内容,同时在 file2.py
中导入 file1.py
中的内容。
包初始化问题: 确保每个目录都包含一个
__init__.py
文件。这个文件可以是空文件,但必须存在于每个目录中,以使 Python 将其识别为包。如果缺少这些文件,导入可能无法正常工作。路径问题: 确保 Python 可以正确地找到你要导入的模块。你可以检查 Python 的
sys.path
变量来查看 Python 解释器搜索模块的路径。如果模块所在的目录不在sys.path
中,你需要手动添加路径。你可以通过以下方式添加路径:在
a.py
文件里有如下内容shelldef a(): return "a"
在
b.py
文件里有如下内容pythonimport os import sys current_dir = os.path.dirname(__file__) # 获取当前文件的上级目录 parent_dir = os.path.dirname(current_dir) # 添加 demo 目录到 Python 的搜索路径中 a = sys.path.append(parent_dir) # 现在你可以导入你想要的模块了 from a.a import a print(a())