питон setup.py установить интерпретатор сценариев изменений
У меня есть пакет Python, который включает в себя несколько скриптов в папке scripts/
. Мой файл setup.py
включает::
#!/usr/bin/env python
from distutils.core import setup
scripts = ['script1', 'script2', 'script3']
setup(name='Test',
version='0.1.0',
packages=['test'],
scripts=['scripts/' + x for x in scripts]
)
Каждый скрипт содержит строку::
#!/usr/bin/env python
Наверху. Однако при запуске python setup.py install
эта строка изменяется на::
#!/usr/bin/python
Автоматически в установленных скриптах. Есть ли способ избежать этого? Причина, по которой это является проблемой для меня, заключается в том, что я использую virtualenv, и поэтому правильный путь для исполняемого файла Python должен быть::
#/Users/user/.virtualenvs/default/bin/python
Так что я предпочел бы это оставил интерпретатор, настроенный на::
#!/usr/bin/env python
Спасибо за любой совет!
1 ответ:
Скрипты установки проверяют, где установлен python, и изменяют этот python на правильный. Он делает это на каждой машине, где установлен ваш пакет.
Из документов:
Скрипты-это файлы, содержащие Python исходный код, предназначенный для запуска из командной строки. Сценарии этого не делают требуется Distutils, чтобы сделать что-нибудь очень сложный. Единственная умная особенность разве что если первая строка из скрипт начинается с #! и содержит в себе слово " питон", в Distutils будет отрегулируйте первую строку для ссылки на текущее местоположение переводчика. Около по умолчанию он заменяется на текущее местоположение переводчика. То -- executable (or-e) опция позволит интерпретатору путь быть явного переопределения.