为何无法从命令行运行Python项目?PyCharm可正常执行
解决命令行执行Python脚本找不到模块的问题
问题根源
PyCharm会自动把src目录标记为Sources Root,并将其加入Python的搜索路径sys.path,所以能正常导入project模块;但命令行执行时,默认不会把src加入路径,导致Python找不到project所在的位置。
具体解决办法
方法1:临时设置PYTHONPATH(快速临时解决)
在tests目录下执行对应系统的命令:
- Windows命令行:
set PYTHONPATH=..\src && python main.py
- Linux/macOS终端:
PYTHONPATH=../src python main.py
方法2:在脚本中手动添加路径
在main.py的最开头添加以下代码,强制把src目录加入Python搜索路径:
import sys import os # 获取当前脚本所在目录,向上一级找到src目录 sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) # 之后再正常导入 from project import run
方法3:用模块方式运行(推荐)
回到项目根目录(Project文件夹),用-m参数以模块形式运行脚本:
python -m src.tests.main
这种方式会让Python自动识别项目的包结构,无需额外配置路径。
方法4:安装为可编辑包(适合长期开发)
在项目根目录创建setup.py文件(内容示例如下):
from setuptools import setup, find_packages setup( name="your-project-name", version="0.1", packages=find_packages(where="src"), package_dir={"": "src"}, )
然后执行命令安装为可编辑模式:
pip install -e .
安装后,project模块会被Python识别为全局可导入的包,任何目录下都能正常运行脚本。
内容的提问来源于stack exchange,提问作者DominikS
相关产品推荐
相关产品推荐

