python -m task.trajsimi |
无需改代码,符合包运行方式 | 命令稍长,需在项目根执行 |
设置 PYTHONPATH |
可直接 python .\task\trajsimi.py 使用 |
每次需手动设置,或配置 .env |
改代码改用绝对导入 | 简单直观,可直接运行 | 修改源码,不利于同步原仓库 |
-m
参数从项目根路径运行最推荐的方式是在项目根目录执行:
python -m task.trajsimi
这时候 Python 会将当前目录当作包根,然后正确找到 config.py
,解决相对导入的报错。
在 PowerShell 中:
PS E:\trajconnect\TrajCL> python -m task.trajsimi
PYTHONPATH
环境变量让 Python 将项目根加入模块搜索路径(sys.path)。在 Windows PowerShell 中:
$env:PYTHONPATH = "E:\trajconnect\TrajCL" python .\task\trajsimi.py
这样导入 config
就不会报错了。此外,你也可以在 .env
文件或 VS Code 的 launch.json
中加入类似设置。
修改 trajsimi.py
,将:
from ..config import Config
改为:
from config import Config
然后配合设置 PYTHONPATH
,效果同上。但如不想修改源码,推荐用方法一或方法二qiita.com+15geeksforgeeks.org+15reddit.com+15。
方法 | 优点 | 缺点 |
---|---|---|
python -m task.trajsimi |
无需改代码,符合包运行方式 | 命令稍长,需在项目根执行 |
设置 PYTHONPATH |
可直接 python .\task\trajsimi.py 使用 |
每次需手动设置,或配置 .env |
改代码改用绝对导入 | 简单直观,可直接运行 | 修改源码,不利于同步原仓库 |
打开 VS Code 终端,切换到仓库根目录 E:\trajconnect\TrajCL
执行:
python -m task.trajsimi
如果仍有 ModuleNotFoundError,再执行:
$env:PYTHONPATH = "E:\trajconnect\TrajCL" python -m task.trajsimi
通过以上两步,你应该可以顺利运行脚本。
如若你想使用 VS Code 的 Debug 模式,可在 .vscode/launch.json
中添加:
{ "name": "Run TrajCL trajsimi", "type": "python", "request": "launch", "module": "task.trajsimi", "cwd": "${workspaceFolder}", "env": { "PYTHONPATH": "${workspaceFolder}" } }
这样在点击 Debug 按钮时也能正确执行。