如何在不使用sys.path的情况下,从同级目录将test.py导入至app.py?
无需sys.path在app.py中导入test.py的实现方法
确认文件结构
根据描述,你的文件结构应为:
项目根目录/ ├── Main/ │ └── app.py └── package/ └── test.py
方法1:绝对导入(推荐方案)
- 在
package目录下创建空的__init__.py文件,将其标记为Python可识别的规范包:package/ ├── __init__.py └── test.py - 在
app.py中写入绝对导入代码:from package import test - 从项目根目录执行启动命令:
python Main/app.py
方法2:相对导入(需按模块方式运行)
- 给
Main和package目录都添加空的__init__.py文件:项目根目录/ ├── Main/ │ ├── __init__.py │ └── app.py └── package/ ├── __init__.py └── test.py - 在
app.py中使用相对导入语法:from ..package import test - 从项目根目录以模块形式启动app.py:
python -m Main.app
方法3:安装为可编辑包(适合长期开发)
- 在项目根目录创建
pyproject.toml文件,内容如下:[build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [project] name = "package" version = "0.1.0" - 在项目根目录执行命令,将package安装为可编辑包:
pip install -e . - 此时在
app.py中可直接使用绝对导入,且不受运行目录限制:from package import test
内容的提问来源于stack exchange,提问作者Pratham Patel
相关产品推荐
相关产品推荐

