Python项目包导入路径配置:解决ModuleNotFoundError问题
Python模块导入问题:无需sys.path.append()的解决方案
项目目录结构
Project |------package1 | |--------module1.py | |--------module2.py |------package2 | |--------module3.py | |--------module4.py |------Test | |-----test.py
test.py内容
import package1.module1
运行错误
ModuleNotFoundError: No module named 'package1'
解决方案
1. 标记Project为Python包
在Project根目录、package1、package2、Test目录下都创建空的__init__.py文件,让Python识别这些目录为合法包结构:
Project |------__init__.py |------package1 | |--------__init__.py | |--------module1.py | |--------module2.py |------package2 | |--------__init__.py | |--------module3.py | |--------module4.py |------Test | |-----__init__.py | |-----test.py
2. 从Project根目录运行脚本
打开终端切换到Project根目录,用模块方式运行test.py:
python -m Test.test
这种运行方式会自动将Project根目录纳入Python模块搜索路径,从而正常识别package1。
3. 用pip可编辑模式安装项目
在Project根目录创建setup.py文件,将项目作为可编辑包安装,让Python全局识别你的包:
setup.py示例代码:
from setuptools import setup, find_packages setup( name="myproject", version="0.1", packages=find_packages(), )
然后在Project根目录执行:
pip install -e .
安装后无论在哪个路径运行test.py,都能直接导入package1模块。
4. 设置PYTHONPATH环境变量
通过环境变量将Project根目录加入Python的模块搜索路径:
- Linux/macOS终端:
export PYTHONPATH=/实际路径/Project:$PYTHONPATH
- Windows cmd:
set PYTHONPATH=C:\实际路径\Project;%PYTHONPATH%
- Windows PowerShell:
$env:PYTHONPATH = "C:\实际路径\Project;" + $env:PYTHONPATH
设置完成后,运行test.py即可正常导入模块。
内容的提问来源于stack exchange,提问作者user3103957
相关产品推荐
相关产品推荐

