[python] virtualenv에서 Python 3 사용

virtualenv 사용 하여 기본 버전의 Python (2.7)으로 프로젝트를 실행합니다. 한 프로젝트에서 Python 3.4를 사용해야합니다.

나는 brew install python3그것을 나의 Mac에 설치했다. 이제 새 버전을 사용하는 virtualenv를 어떻게 만듭니 까?

예 : sudo virtualenv envPython3

내가 시도하면 :

virtualenv -p python3 test

나는 얻다:

Running virtualenv with interpreter /usr/local/bin/python3
Using base prefix '/usr/local/Cellar/python3/3.4.0_1/Frameworks/Python.framework/Versions/3.4'
New python executable in test/bin/python3.4
Also creating executable in test/bin/python
Failed to import the site module
Traceback (most recent call last):
  File "/Users/user/Documents/workspace/test/test/bin/../lib/python3.4/site.py", line 67, in <module>
    import os
  File "/Users/user/Documents/workspace/test/test/bin/../lib/python3.4/os.py", line 634, in <module>
    from _collections_abc import MutableMapping
ImportError: No module named '_collections_abc'
ERROR: The executable test/bin/python3.4 is not functioning
ERROR: It thinks sys.prefix is '/Users/user/Documents/workspace/test' (should be '/Users/user/Documents/workspace/test/test')
ERROR: virtualenv is not compatible with this system or executable



답변

간단하게 실행

virtualenv -p python3 envname

OP 수정 후 업데이트 :

설명 VIRTUALENV의 영업 이익의 버전에서 버그가 있었다 여기 . 다음을 실행하여 문제를 해결했습니다.

pip install --upgrade virtualenv


답변

Python 3은 가상 환경 ( venv) 을 기본적으로 지원합니다 . 대신 사용하는 것이 좋습니다. 문서를 참조하십시오.

pyvenv 스크립트를 실행하여 가상 환경을 작성하십시오.

pyvenv /path/to/new/virtual/environment

Python 3.6 이상 업데이트 :

으로 pawciobiel가 제대로 코멘트 , pyvenv있다 되지 파이썬 3.6으로 새로운 방법입니다 :

python3 -m venv /path/to/new/virtual/environment


답변

pyenv를 사용해 보았고 파이썬 버전 (전역, 로컬 또는 폴더 또는 virtualenv)을 전환하는 데 매우 편리합니다.

brew install pyenv

그런 다음 원하는 Python 버전을 설치하십시오.

pyenv install 3.5.0

필요한 인터프리터 버전의 경로로 virtualenv를 작성하십시오.

virtualenv -p /Users/johnny/.pyenv/versions/3.5.0/bin/python3.5 myenv

그게 다야, 버전을 확인하십시오 :

. ./myenv/bin/activate && python -V

pyenv pyenv-virtualenv 용 플러그인도 있지만 어떻게 든 작동하지 않았습니다.


답변

전제 조건을 설치하십시오.

sudo apt-get install python3 python3-pip virtualenvwrapper

Python3 기반 가상 환경을 작성하십시오. 선택적으로 --system-site-packages플래그를 활성화하십시오 .

mkvirtualenv -p /usr/bin/python3 <venv-name>

가상 환경으로 설정하십시오.

workon <venv-name>

pip패키지 관리자를 사용하여 다른 요구 사항을 설치하십시오 .

pip install -r requirements.txt
pip install <package_name>

여러 python 프로젝트를 동시에 작업 할 때는 일반적 pdbpp으로 전역과 같은 공통 패키지를 설치 한 다음 virtualenv에서 재사용하는 것이 좋습니다 .

이 기술을 사용하면 최소한의 디스크 공간과 네트워크 대역폭을 사용하는 것 외에도 패키지를 가져오고 설치하는 데 소요되는 많은 시간이 절약됩니다.

sudo -H pip3 -v install pdbpp
mkvirtualenv -p $(which python3) --system-site-packages <venv-name>

장고 관련 지침

시스템 전체의 파이썬 패키지 --system-site-packages가 많으면 장고 시작 속도가 크게 느려지는 것을 알았으므로 개발 중에 특히 플래그를 사용하지 않는 것이 좋습니다 . Django 환경 초기화가 수동으로 시스템 경로에서 모든 사이트 패키지를 스캔하고 추가한다고 가정합니다. 심지어 python manage.py shell매우 느려집니다.

그 실험은 어떤 옵션이 더 잘 작동한다고 말했습니다. --system-site-packagesDjango 프로젝트의 플래그를 건너 뛰는 것이 안전 할 수 있습니다.


답변

virtualenv --python=/usr/bin/python3 <name of env>

나를 위해 일했다.


답변

환경을 만들면서 특정 버전의 Python 을 지정할 수 있습니다 . virtualenv.py
에서 언급되었습니다.

virtualenv --python=python3.5 envname

경우에 따라 실행 파일의 전체 경로 여야합니다.

virtualenv --python=/Users/username/.pyenv/versions/3.6.0/bin/python3.6 envname

어떻게 -p작동

parser.add_option(
    '-p', '--python',
    dest='python',
    metavar='PYTHON_EXE',
    help='The Python interpreter to use, e.g., --python=python3.5 will use the python3.5 '
    'interpreter to create the new environment.  The default is the interpreter that '
    'virtualenv was installed with (%s)' % sys.executable)


답변

나는 같은 ERROR메시지를 받았다 . 내 경우에는 tbrisker의 솔루션이 작동하지 않았습니다. 대신 이것은 문제를 해결했습니다.

$ python3 -m venv .env