Я строю библиотеку, которая будет включена в другие проекты через pip.Невозможно импортировать модуль из каталога bin из того же проекта
У меня есть следующие директории ('venv' является virtualenv):
project
\- bin
\- run.py
\- myproj
\- __init__.py
\- logger.py
\- venv
Активирую virtualenv.
В бен/run.py у меня есть:
from myproj.logger import LOG
, но я всегда получаю
ImportError: No module named myproj.logger
следующие работы от 'проекта' реж:
python -c "from myproj.logger import LOG"
Это не правильное добавление каталога «project» в pythonpath при вызове из каталога «bin». Как импортировать модули из «myproj» из сценариев в моем каталоге bin?
OK спасибо. Я этого раньше не видел. – user1491250
Учитывая, что OP использует virtualenv; манипуляции 'sys.path' [не нужны] (http://stackoverflow.com/a/16816683/4279) или даже [вредные] (http://stackoverflow.com/a/14186074/4279). – jfs
Я предпочитаю использовать абсолютный путь из сценария, чтобы сценарий можно было запускать из любого места. 'sys.path.append (os.path.join (os.path.dirname (sys.argv [0]), '..'))' –