Другой разработчик и я не согласны с тем, следует ли использовать PYTHONPATH или sys.path, чтобы позволить Python найти пакет Python в каталоге пользователя (например, разработчика).
У нас есть проект Python с типичной структурой каталогов:
Project
setup.py
package
__init__.py
lib.py
script.py
В script.py нам нужно сделать import package.lib
. Когда пакет установлен в site-packages, можно найти script.py package.lib
.
Однако при работе из пользовательского каталога необходимо сделать кое-что еще. Мое решение - включить в PYTHONPATH «~ / Project». Другой разработчик хочет поместить эту строку кода в начало script.py:
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
Чтобы Python мог найти локальную копию package.lib
.
Я думаю, что это плохая идея, так как эта строка полезна только для разработчиков или людей, работающих с локальной копией, но я не могу объяснить, почему это плохая идея.
Должны ли мы использовать PYTOHNPATH, sys.path или все в порядке?