Проблема : pip3 install
и setuptools
неожиданно обкрадывает строку сценариев оболочки shebang. Я пытаюсь понять, как это работает и как это контролировать.
Что происходит : В macOS 10.13 я использую Python 3.5, установленный macports . Я разработал пакеты Python 3, которые в настоящее время могут быть установлены с помощью следующей простой процедуры:
git clone https://github.com/project/mypackage.git
cd mypackage
sudo pip3 install .
setup.py
для пакетов содержит следующее:
scripts = ['bin/somescript'],
Каждый такой скрипт имеет следующую первую строку:
#!/usr/bin/env python3
Сегодня я обнаружил, что pip3
манипулирует строкой Шебанга во время установки таким образом, что зависит от второй строки скрипта . В частности, если запуск моего скрипта выглядит следующим образом,
#!/usr/bin/env python3
#
# some comments here
затем pip3 install
заменяет первую строку на #!/usr/bin/X11/python3
, что в моей системе совершенно неверно. Однако, если начало моего скрипта выглядит так:
#!/usr/bin/env python3
# some comments here
pip3 install
заменяет линию Шебанга на другой (на этот раз правильный) путь, #!/opt/local/bin/python3
.
Мои вопросы : По сути, почему это происходит ?
- Почему вторая строка скрипта меняет поведение?
- Как
pip3 install
выбрать, какой интерпретатор он использует?
- Почему он пытается использовать
/usr/bin/X11/python3
(которого нет в моей системе)?
- Как я могу изменить поведение или вообще прекратить жечь?