python 명령이 잘못된 버전의 Python 인터프리터를 시작합니다.

python 명령이 잘못된 버전의 Python 인터프리터를 시작합니다.

저는 Mac OS X 버전 10.13.1을 사용하고 있으며 방금 아나콘다를 설치했습니다. 명령을 사용하여 가상 환경을 만들었습니다.

conda create -n py3 python=3

그런 다음 다음 명령을 사용하여 Python 인터프리터를 시작했습니다.

python

놀랍게도 /usr/bin에 사전 설치된 Python 2.7이 Python 3.6 대신 나타났습니다. 무엇이 잘못되었는지 확인하기 위해 명령을 실행했습니다.

which python

그 결과는 저를 더욱 놀라게 했습니다. 저는 다음과 같은 결과를 얻었습니다.

/Users/karlstroetmann/anaconda2/envs/py3/bin/python

내가 명령을 부를 때

/Users/karldrstroetmann/anaconda2/envs/py3/bin/python

나는 Python 3.6.3을 얻었습니다. 하지만 왜 input 을 통해 이 버전을 호출할 수 없는지 이해가 되지 않습니다 python. 내가 여기서 무엇을 놓치고 있는 걸까요? 어떤 조언이라도 대단히 감사하겠습니다.

답변1

python명령은 아마도해시된그리고 캐시를 지워야 합니다. 실제 실행 중인 실행 파일을 보려면 다음 명령을 사용할 수 있습니다 type. 예를 들면 다음과 같습니다.

type -a python

which명령과 달리 이 type명령은 해시, 별칭 및 셸 기능을 인식합니다.

쉘이 실행하는 프로그램을 결정하기 위해 사용할 명령에 대한 자세한 내용은 다음 게시물을 참조하세요.

또는 명령 hash자체를 사용하여 주어진 명령이 해시되었는지 여부를 확인할 수도 있습니다. 예를 들면 다음과 같습니다.

hash -t python

hash인수 없이 실행하여 모든 해시 명령을 나열 할 수도 있습니다 . 예:

hash

마찬가지로, 이 alias명령을 사용하여 주어진 명령이 별칭인지 확인할 수 있습니다. 예를 들면 다음과 같습니다.

alias python

모든 활성 별칭을 나열할 수도 있습니다.

alias

캐시된 Python 프로그램을 지우려면 다음 명령을 사용할 수 있습니다.

hash -d python

또는 모든 내용을 한 번에 지울 수도 있습니다.

hash -r

단일 별칭을 지우려면 다음 unalias명령을 사용할 수 있습니다. 예를 들면 다음과 같습니다.

unalias python

또는 모든 별칭을 즉시 지울 수도 있습니다.

unalias -a

답변2

나는 내 문제를 해결했습니다. 그것은 어리석은 실수였습니다. 내 .bashrc에 python에 대한 별칭이 있었습니다. 이 별칭을 잊어버렸기 때문에 문제가 발생했습니다.

답변3

아나콘다(기본) 환경에서 가상 환경을 호출하는 경우에도 이런 현상이 발생할 수 있습니다. conda deactivate출구를 위해모두아나콘다 환경을 종료하고 conda activate <myenv>환경으로 돌아갑니다.

어쨌든 이것은 나에게 효과적입니다. 이 StackExchange 스레드에서 찾았습니다.

관련 정보