【发布时间】:2020-03-01 21:06:01
【问题描述】:
当我尝试$> python ./tools/test.py 时,我收到一个导入错误,我无法导入我从中调用 python 的目录中存在的模块。不过,我可以导入这个模块,$> python -c "import mod" 可以。
我依赖于 ./ (实际上)在 PYTHONPATH 上这一事实。
当我在不同目录中的脚本上运行解释器时,python 对 python 路径做了什么?有没有办法“锁定”当前工作目录,以便我可以让导入工作?
我的设置:
./mod.py:
x = 5 # just for demonstration purposes
./tools/test.py:
from mod import x
# ... snip ... actual content
我正在从包含mod.py 和tools/ 的目录中调用python:
$> python -c "from mod import x" # works fine
$> python tools/test.py
Traceback (most recent call last):
File "tools/test.py", line 1, in <module>
from mod import x
ModuleNotFoundError: No module named 'mod'
请注意,包含 mod.py 和 tools 的当前目录在我的 PYTHONPATH 上不是。
【问题讨论】:
标签: python pythonpath