питон 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 2

1 ответ:

Скрипты установки проверяют, где установлен python, и изменяют этот python на правильный. Он делает это на каждой машине, где установлен ваш пакет.

Из документов:

Скрипты-это файлы, содержащие Python исходный код, предназначенный для запуска из командной строки. Сценарии этого не делают требуется Distutils, чтобы сделать что-нибудь очень сложный. Единственная умная особенность разве что если первая строка из скрипт начинается с #! и содержит в себе слово " питон", в Distutils будет отрегулируйте первую строку для ссылки на текущее местоположение переводчика. Около по умолчанию он заменяется на текущее местоположение переводчика. То -- executable (or-e) опция позволит интерпретатору путь быть явного переопределения.