如何在终端中像IntelliJ一样设置Python工作目录运行脚本?
解决Python终端运行脚本的导入错误问题
针对你遇到的情况,有几个实用的解决办法:
1. 临时设置PYTHONPATH环境变量
Python会从PYTHONPATH指定的路径中查找模块,只需把Project目录添加到这个环境变量里:
- Linux/macOS终端:
export PYTHONPATH=/实际路径/Project:$PYTHONPATH python directory/sub_directory/main.py - Windows命令提示符(cmd):
set PYTHONPATH=C:\实际路径\Project;%PYTHONPATH% python directory\sub_directory\main.py - Windows PowerShell:
$env:PYTHONPATH = "C:\实际路径\Project;$env:PYTHONPATH" python directory\sub_directory\main.py
注意:这种设置是临时的,关闭终端后会失效。
2. 在main.py中手动添加项目根路径
在main.py的最顶部(所有导入语句之前)加入以下代码,强制把Project目录加入Python的模块搜索路径:
import sys import os # 向上两级目录定位到Project根目录 project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) if project_root not in sys.path: sys.path.append(project_root)
这样不管从哪个目录运行main.py,都能正确找到generic_module。
3. 使用-m参数以模块形式运行
先把Project变成规范的Python包:在Project、directory、sub_directory目录下各创建一个空的__init__.py文件(不需要写任何内容)。
然后从Project的父目录执行命令:
python -m Project.directory.sub_directory.main
-m参数会自动把模块所在的根目录加入搜索路径,和IDE的工作目录效果一致。
4. 把项目安装为可编辑包(长期开发推荐)
进入Project目录,执行以下命令:
pip install -e .
这会把你的项目以“可编辑”模式安装到Python环境中,之后不管在哪个位置运行脚本,都能正确导入项目内的模块,修改代码也无需重新安装。
内容的提问来源于stack exchange,提问作者Yogesh
相关产品推荐
相关产品推荐

