Изменить цель Шебанга
Я хотел бы создать цель python3 для использования в шебангах. Например. использовать первую строку #!/usr/bin/env python3,
Что я пробовал:
setenv python3 PATH_TO_BINARY, также поместите его в
.cshrcecho $python3 показывает также путь/bin/env NAME=python3 PATH_TO_BINARY, открывает python3, но не позволяет использовать шебанг. То же самое для /bin/env python3=PATH_TO_BINARY
В случае, если это имеет значение, я хотел бы решить следующую проблему:
Я работаю над rhel 6 система, которую я не могу установить напрямую python3 Однако я могу использовать его более anaconda3 который установлен на доступном сетевом ресурсе. Вместо того, чтобы ставить shebang с абсолютным путем, я хотел бы правильно установить путь python3 для записи переносимого кода.
1 ответ
В этом случае это не #!-линии вы должны меняться, но ваш $PATH,
#!/usr/bin/env python3
Это приводит к тому, что python3 переводчик будет искать в каталогах, перечисленных в вашем $PATH переменная.
Если python3 устанавливается, например, в $HOME/local/binто этот каталог должен присутствовать в $PATH перед любым другим каталогом, который также может содержать python3 переводчик, в противном случае он будет использоваться вместо вашего собственного в $HOME/local/bin,
Так что вам нужно установить
PATH="$HOME/local/bin:$PATH"
Либо в командной строке, либо в скрипте инициализации оболочки (~/.bashrc например). Пользователи C-shell делают это по-другому...
set path = ($HOME/local/bin $path)
В общем, #!-line определяет интерпретатор для скрипта, т.е. какую программу использовать для анализа и запуска файла. sed скрипт, например, может использовать #!/usr/bin/sed -f,