Изменить цель Шебанга
Я хотел бы создать цель python3
для использования в шебангах. Например. использовать первую строку #!/usr/bin/env python3
,
Что я пробовал:
setenv python3 PATH_TO_BINARY, также поместите его в
.cshrc
echo $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
,