Python - установите утилиту CLI с pip, чтобы ее можно было использовать не только в виртуальных средах
Предположим, что утилита CLI опубликована в PyPI, которую можно загрузить с pip
,
Я хочу установить его для использования не в виртуальной среде. В виртуальной среде сценарий точки входа создается в env/bin/
каталог. Но, установив его с pip
с деактивированной виртуальной средой, она просто устанавливается в /usr/local/lib/pythonX/dist-packages/<package-name>
и без <package-name>
сценарий точки входа в пути, поэтому он не вызывается.
Есть ли возможность сделать это?
2 ответа
Вы всегда можете экспортировать PYTHON_PATH
в вашем .bash_[profile|rc]
файл для управления тем, какой путь искать независимо от вашей виртуальной среды.
Согласно документации Python по PYTHON_PATH
:
Путь поиска по умолчанию зависит от установки, но обычно начинается с префикса /lib/pythonversion (см. PYTHONHOME выше). Это всегда добавляется к PYTHONPATH.
Дополнительный каталог будет вставлен в путь поиска перед PYTHONPATH, как описано выше в разделе "Параметры интерфейса". Путь поиска можно манипулировать из программы Python как переменную sys.path.
Спасибо @gnis и @anatoly-techtonik, но я решил сделать так, чтобы это делегировалось в setuptools вместо создания сценариев вручную.
Это просто вопрос передачи словаря setup
, console_scripts
, который может быть точно таким же, как entry_points
(тот, который генерирует файл в виртуальной среде bin/
:
setup(
# rest of setup
console_scripts={
'console_scripts': [
'<app> = <package>.<app>:main'
]
},
)
Это сгенерирует скрипт в /usr/local/bin
,
Для получения дополнительной информации проверьте https://packaging.python.org/distributing/