python setup.py установить изменения интерпретатор сценария - PullRequest
2 голосов
/ 23 декабря 2010

У меня есть пакет 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 Ответ

3 голосов
/ 23 декабря 2010

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

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

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

...