
python3
shebangs에서 사용할 대상을 만들고 싶습니다 . 예. 첫 번째 줄을 사용하십시오 #!/usr/bin/env python3
.
내가 시도한 것:
setenv python3 PATH_TO_BINARY, 또한 에 넣으면
.cshrc
echo $python3도 경로를 표시합니다./bin/env NAME=python3 PATH_TO_BINARY, python3을 열지만 shebang 사용을 허용하지 않습니다. /bin/env python3=PATH_TO_BINARY에서도 동일합니다.
중요한 경우 다음 문제를 해결하고 싶습니다.
rhel 6
직접 설치할 수는 없지만 액세스 가능한 네트워크 리소스에 설치된 시스템 python3
을 사용할 수 있는 시스템 에서 작업하고 있습니다 . anaconda3
Shebang을 절대 경로로 두는 대신 python3 경로를 올바르게 설정하고 이식 가능한 코드를 작성하고 싶습니다.
답변1
이 경우 #!
변경해야 할 것은 -line이 아니라 $PATH
.
#!/usr/bin/env python3
python3
이는 변수 에 나열된 디렉토리에서 인터프리터를 검색하는 효과가 있습니다 $PATH
.
python3
예를 들어 가 에 설치된 경우 $HOME/local/bin
이 디렉토리는 다음 위치에 있어야 합니다.$PATH
~ 전에인터프리터를 포함할 수 있는 다른 디렉토리 python3
. 그렇지 않으면 에서 사용자 자신 대신 해당 디렉토리가 사용됩니다 $HOME/local/bin
.
그래서 설정해야합니다
PATH="$HOME/local/bin:$PATH"
명령줄이나 쉘 초기화 스크립트( ~/.bashrc
예:)에서. C 쉘 사용자는 다르게 수행합니다 ...
set path = ($HOME/local/bin $path)
일반적으로 #!
-line은 다음을 식별합니다.통역사스크립트의 경우, 즉 파일을 구문 분석하고 실행하는 데 사용할 프로그램입니다. sed
예를 들어 스크립트 는 #!/usr/bin/sed -f
.