Python의 업데이트 대안을 사용할 때 apt-get이 올바른 Python 버전을 감지할 수 없습니다.

Python의 업데이트 대안을 사용할 때 apt-get이 올바른 Python 버전을 감지할 수 없습니다.

내 Linux Mint DE에 다른 Python 버전이 설치되어 있습니다. 나는 이 update-alternatives --set명령문을 사용하여 다른 버전 간에 쉽게 전환합니다.

불행히도 때로는 올바른 Python 경로를 식별하는 데 문제가 있는 경우도 있습니다 apt-get install. upgrade올바른 대체 설정이 있지만 python2.7을 사용하려는 것 같습니다. 그게 무엇을 가리키는지 , 무엇을 가리키는지 apt-get알아낼 방법이 없는 것 같아요 ./usr/bin/python/etc/alternatives/python/usr/bin/python2.7

/usr/bin/python완료 부터 직접 심볼릭 링크를 수동으로 생성하면 /usr/bin/python2.7 apt-get오류가 발생하지 않습니다.

apt-get재정의 옵션을 사용하여 구성된 Python 버전을 올바르게 감지하고 사용하려면 어떻게 해야 합니까 ?

답변1

문제는 셸(Bash)이 실행 파일을 호출할 때 경로를 해시하는 방식과 관련이 있을 수 있다고 생각합니다.

에서 발췌배쉬 매뉴얼 페이지

Bash는 실행 파일의 전체 경로 이름을 기억하기 위해 해시 테이블을 사용합니다(아래 SHELL BUILTIN COMMANDS 아래의 해시 참조). 해시 테이블에서 명령을 찾을 수 없는 경우에만 PATH의 디렉터리 전체 검색이 수행됩니다.

hash다음과 같은 명령을 사용하여 해시를 요청할 수 있습니다.

$ hash -l
builtin hash -p /usr/sbin/update-alternatives update-alternatives
builtin hash -p /usr/bin/man man
builtin hash -p /bin/ls ls

스위치를 사용하여 해시가 모든 것을 "잊게" 만들 수 있습니다 -r.

$ hash -r
manny@manny:~$ hash -l
hash: hash table empty

hash -r이 프로그램을 실행하기 전에 apt-get문제가 해결되는지 확인하기 위해 실행 해 보겠습니다 .

또한 출력물을 보고 update-alternatives --query <command>여러분이 생각하는 값이 포함되어 있는지 확인하겠습니다. 내 java예 는 다음과 같습니다 .

$ update-alternatives --query java
Name: java
Link: /usr/bin/java
Slaves:
 java.1.gz /usr/share/man/man1/java.1.gz
Status: auto
Best: /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
Value: /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java

Alternative: /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
Priority: 1071
Slaves:
 java.1.gz /usr/lib/jvm/java-7-openjdk-amd64/jre/man/man1/java.1.gz

관련 정보