У меня проблема, когда пакеты, установленные с помощью setuptools для python anaconda, имеют переписанные shebang в неправильное место.
Я установил пакет python anaconda и setuptools. Я подтвердил, что исполняемый файл python указывает на исполняемый файл anaconda
grant@DevBox2:/opt/content-analysis$ which python
/opt/anaconda2/bin/python
Мне нужно установить специальный пакет на мой питон anaconda. Его можно установить только с помощью setuptools. Он включает исполняемый файл командной строки со следующей строкой вверху:
#!/usr/bin/env python
После установки пакета следующей командой:
sudo python setup.py install --prefix=/opt/anaconda2
Исполняемый файл (content_analysis) появляется в доступном месте. Но shebang наверху был заменен жестко заданным местоположением установки python по умолчанию на машине.
grant@DevBox2:/opt/content-analysis$ which content_analysis
/opt/anaconda2/bin/content_analysis
grant@DevBox2:/opt/content-analysis$ sed -n 1,2p /opt/anaconda2/bin/content_analysis
#!/usr/local/bin/python
Я прочитал следующее сообщение здесь о перезаписи шебангов с помощью setuptools. В сообщении предполагается, что исполняемый файл python, который находится первым в $PATH
должен быть исполняемым файлом, который setuptools использует для замены shebang. Однако мне кажется, что это не так.
Примечание. Я не могу жестко закодировать исполняемый файл python в свою команду python setup.py build
. Мне нужно решение для развертывания, которое будет работать в любой среде, где conda установлена как первый питон в $PATH