Когда я пытаюсь $> 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
Я вызываю python из каталога, содержащего mod.py
и tools/
:
$> 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.