2017-09-06 9 views
1

는 내가 mkvirtualenv의 버전과 VIRTUALENVvirtualenvwrapper가 python3 대신 python2와 관련된 경로를 만드는 이유는 무엇입니까?

업데이트 $ sudo를 핍 설치 --upgrade VIRTUALENV virtualenvwrapper

내 인생 난 단지 파이썬이 사용하고, 파이썬 3 -now- 사용하고 싶었 기 때문에 virtualenvwrapper에는 몇 가지 문제가 있습니다.

$ mkvirtualenv py3test -p는/usr/빈/python3에게

환경이 ~/.virtualenvs/py3test에서 만들어집니다 :

는 그럼 난 내 python3 설치를위한 가상 환경을 구축했습니다. 활성화되면, 내가 만든 패키지를 설치하려면 :

(py3test) $ 설치 PIP 파이썬 cantrips (py3test) $

을 동결 PIP를 그리고 패키지가 적절하게 설치됩니다. $ ipython

그리고 적절하게 ipython를 입력 (py3test) ipython 설치 PIP $

(py3test 일) : 그럼 ipython를 설치하고 실행합니다. 하지만 그때 나는 ...

import cantrips 

ImportError으로 폭발합니다. 그런 다음 sys.path을 확인합니다. 그리고 문제는 여기에 있습니다 : sys.path는 '/home/myuser/.virtualenvs/py3test/lib/python2.7/site-packages'과 같은 경로를 포함합니다. 나는 그 컴퓨터에 지금 있지 않기 때문에 경로가 정확한지 아닌지를 기억하지 못합니다. 그러나 나는 확실히 할 수있는 한 가지는 : 환경은 python3 (디렉토리는 python2.7이 아니라 python3.5는 내 virtualenv에 있음)로 생성되었습니다.

So : 왜 virtualenv는 python3을위한 환경을 만들고 있지만 대신에 python2.7 환경 인 것처럼 경로를 추가합니까?

+1

당신은'pip3'을 사용하려고합니까? 파이썬 3에 env를 사용하고 싶다면이'python3 -m venv ENV' – AndMar

+1

을 실행하면'python'을 실행하면 버전이 표시됩니까? –

+0

@KlausD.내가 사용하는 기본 파이썬 버전은 파이썬 2.7이다. mkvirtualenv를 실행하기 전에 기본 파이썬 옵션을 변경해야합니까? 그렇다면 virtualenv에서 -p 옵션의 목적은 무엇입니까? –

답변

2

발견!

virtualenv 또는 virtualenvwrapper에는 문제가 없습니다. 문제는 ipython입니다. 사실 ipython과 관련된 문제는 없지만 virtualenv 내에서 스크립트에 액세스 할 수있는 방법이 있습니다.

전 세계적으로 ipython (전 세계 python27에서 작동)을 설치했습니다. ipython을 로컬 python3 환경에 설치했을 때 환경을 다시 새로 고칠 때까지 (셸) 경로가 업데이트되지 않았습니다 (예 : 비활성화, 다시 활성화). 그래서 다시 시도했을 때, ipython이 적당했습니다 (내 환경에 3.5가있는 로컬 ipython). 생성 된 경로는 예상 된 경로였습니다.