Допустим, у нас есть программа /пакет, которая поставляется с собственным интерпретатором и набором сценариев, которые должны вызвать ее при выполнении (с помощью шебанга). < /p>
И допустим, мы хотим сохранить его портативным, поэтому он остается функционирующим, даже если просто скопировано в другое место (разные машины), не вызывая настройку/установку или изменение среды (путь). Интерпретатор системы не следует смешивать для этих сценариев. />#!/usr/bin/python
< /code>
и поиск в среде < /p>
#!/usr/bin/env python
< /code>
Отдельные установки запуска выглядят уродливыми и неприемлемы. Относительный путь в Шебанге бесполезен, и для интерпретатора не может быть более одного аргумента: http://www.in-ulm.de/~mascheck/various/shebang/
и я также нашел практические решения для большинства языков с многострочными Шебанг. Это позволяет писать сценарии, подобные этим: < /p>
#!/bin/sh
"exec" "`dirname $0`/python2.7" "$0" "$@"
print copyright
< /code>
Но иногда мы не хотим расширять /исправлять существующие сценарии, которые полагаются на Шебанг с абсолютным путем для интерпретатора, используя этот подход. Например. Python's setup.py поддерживает -Executable < /code> опция, которая в основном позволяет указать содержание Shebang для сценариев, которые он создает: < /p>
python setup.py build --executable=/opt/local/bin/python
< /code>
Итак, в частности, что можно указать для -Executable = < /code>, чтобы включить желаемый вид переносимости? Или, другими словами, так как я хотел бы сохранить вопрос не слишком специфичным для Python ... < /p>
Вопрос < /h1>
Как написать шейбанг, который указывает интерпретатора с путем, который относится к местоположению выполняемого сценария?>
Подробнее здесь: https://stackoverflow.com/questions/332 ... nterpreter
Относительный Шебанг: Как написать исполняемый сценарий под управлением портативного интерпретатора, который поставляетс ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение