virtualenv에서 Python 3 사용


778

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

1
현재 환경에서 인터프리터 만 업데이트하려고 했습니까? 아니면 처음부터 시작하기로 결정 했습니까?
Charlie Parker

Mac에서 시스템 python (python2.x 유지)을 업데이트하지 않고 가상 환경에서만 python3을 설치할 수 있습니까?
6월

답변:


1385

간단하게 실행

virtualenv -p python3 envname

OP 수정 후 업데이트 :

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

pip install --upgrade virtualenv

17
virtualenv 업그레이드는 효과가 있었지만 어떤 이유로 든 python3 실행 파일에 대해 명시해야했습니다.virtualenv -p $(which python3) envname
dkamins

2
새로운 환경을 만드는 대신 현재 환경의 파이썬 인터프리터를 변경하는 것이 가능합니까?
Charlie Parker

Raspbian Jessie에서 'virtualenv --no-site-packages python3.4'가 작동했습니다. --distribute는 더 이상 사용되지 않으며 virtualenv는 python3을 사용하므로 -p가 필요하지 않은 것 같습니다.
alkopop79

왜 실행 한 후 것입니다 virtualenv -p python3 my_virtual_env, python3또한 가상 환경 외부에서 액세스 할 수 있습니다?
Bishwas Mishra

@CharlieParker 당신은 순서대로 다음과 같은 두 가지 단계를 수행 할 수 있습니다 : 1. 삭제 bin, lib, include, localshare프로젝트의 루트 디렉토리에 디렉토리를. 2. 터미널 실행 : virtualenv -p python3 .현재 디렉토리에서 새로운 Python3 virtualenv를 초기화합니다.
Calleniah

251

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

2
파이썬 3.5.2와 함께 pyenv와 함께 작동하기 위해 virtualenv를 떠난 이후로 당신이 옳았기를 바랍니다.
Jayesh

1
위치 관련 문제를 확인하는 정보를 찾지 못했습니다. 재배치 가능이 옵션으로 제거되었습니다. 이제는 불필요합니까? 그들의 해결책은 무엇입니까? 아니면 이제 앱을 준비하는 데 전혀 쓸모가 없습니까?
JM Becker

7
python3 -m venv /path/v3pyvenv 스크립트는 Python 3.6부터 더 이상 사용되지 않으므로 정확하게 실행할 수도 있습니다 .
pawciobiel 2018

4
Mac에서 최신 anaconda python 3.6을 사용하면 python3 -m venv /path/v3오류가 발생합니다. Error: Command '['/path/v3/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit뭔가 빠졌습니까? 이 --without-pip옵션을 사용하면 적어도 활성화 / 비활성화 스크립트를 사용하여 venv를 만듭니다.
monkut

3
누구나 python3.6 -m venv <venvname>을 활성화하는 방법을 알고 있습니다. 작성된 디렉토리에는 Scripts /가 없으며 bin / 하위 디렉토리에는 "activate"가 없습니다.
Shayne

60

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 용 플러그인도 있지만 어떻게 든 작동하지 않았습니다.


귀하의 방법은 새로운 파이썬 환경을 만들어야합니다. pyenv가 virtualenv와 함께 작동하고 원하는 때마다 파이썬 버전을 간단하게 변경할 수 있습니까?
Charlie Parker

58

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

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 프로젝트의 플래그를 건너 뛰는 것이 안전 할 수 있습니다.


1
(사용하지 않은 것을 제외하고 내가 OSX이 적용, 그것은 일을 apt-get하지만 brew)
sdkks

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

나를 위해 일했다.


나는 그것을 시도했지만 말했다 The executable python3 (from --python=python3) does not exist, 당신은 무엇을 할 것인가? 나는 isntall python3을 만들고 싶었지만 그것이 좋은 아이디어인지 또는 내 시스템이 내가 사용하고있는 파이썬 버전과 혼동 될지 확신하지 못했다
Charlie Parker

우분투 16.04에서 매력처럼 작동합니다!
Eric Vieira

20

환경을 만들면서 특정 버전의 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)

이것이 가장 좋은 답변입니다
Collier

14

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

$ python3 -m venv .env

13

python / python3에서 가상 환경을 실행하기 위해 필요한 모든 것

먼저 virtualenv설치되지 않은 경우 실행

pip3 install virtualenv 

이제 실행 :

virtualenv -p python3 <env name> 

때때로 cmd virtualenv가 실패하면 다음을 사용하십시오.

python3 -m virtualenv <env_name>  # you can specify full path instead <env_name> to install the file in a different location other than the current location

이제 가상 환경을 활성화하십시오.

source <env_name>/bin/activate

또는:

source `pwd`/<env_name>/bin/activate

이제 실행

which python

당신은 당신의 디렉토리와 <env_name>/bin/python접미사에 대한 전체 경로를 볼 수 있습니다

virtualenv를 종료하려면 다음을 실행하십시오.

deactivate 

8

파이썬은 이제 "venv"라는 이름으로 자체 가상 환경 구현을 제공합니다. virtualenv 대신 이것을 사용하는 것이 좋습니다.

venv-docs 에서 인용 ,

버전 3.6부터 사용되지 않음 : pyvenv는 Python 3.3 및 3.4에 대한 가상 환경을 작성하기 위해 권장되는 도구이며 Python 3.6에서는 사용되지 않습니다.

버전 3.5으로 변경 : 가상 환경을 만드는 데 venv를 사용하는 것이 좋습니다.

Windows의 경우 일부 프로젝트에서 venv를 시작하려면 cmd를여십시오.

python -m venv "c:\path\to\myenv"

(공백이 있으면 디렉토리 경로에 큰 따옴표를 사용하는 것이 좋습니다. 예 : "C : / My Dox / Spaced Directory / Something")

venv가 설정되면 프로젝트 디렉토리 안에 새로운 폴더가 나타납니다. 그중 하나는 "스크립트"입니다.

venv를 활성화하거나 호출하려면 다음이 필요합니다.

C:\> <venv>\Scripts\activate.bat

쉘에“비활성화”를 입력하여 가상 환경을 비활성화 할 수 있습니다. 이것으로 이제 "Lib"폴더에있는 프로젝트 특정 라이브러리를 설치할 준비가되었습니다.

=============================== 편집 1 ================== ==================== 아래에서 논의 될 시나리오는 원래 요청한 것이 아니며 누군가 파이썬 확장으로 vscode를 사용하는 경우에 추가하는 것입니다.

python 확장명으로 vs 코드를 사용하는 경우 전역 설치를 가리키는 pylint에 문제가 발생할 수 있습니다. 이 경우 pylint는 가상 환경에 설치된 모듈을 볼 수 없으므로 가져 오는 동안 오류가 표시됩니다.

다음은 이 과거를 얻을 수있는 간단한 방법입니다.

cd Workspace\Scripts
.\Activate.ps1
code .

기본적으로 환경을 먼저 활성화 한 다음 pylint가 환경 내에서 시작되어 모든 로컬 패키지를 볼 수 있도록 vs 코드를 호출합니다.


나는 virtualenv매일 가상 환경 ( workon등)을 사용하지만 새로운 가상 환경을 안정적으로 생성하는 데는 python3.x이것이 내가 찾은 유일한 방법이다.
Bobble

6

다른 답변 외에도 실행중인 virtualenv 인스턴스를 확인하는 것이 좋습니다.

which virtualenv

이것이 / usr / local / bin에 문제가 발생하면 시스템 패키지 관리자를 사용하지 않고 virtualenv (easy_tools 또는 pip 인스턴스 사용)를 설치했을 가능성이 있습니다 (OP의 경우). 이것은 내 문제였다.

몇 년 전-더 무지했을 때 virtualenv를 설치했으며 시스템에 패키지로 제공되는 virtualenv를 숨겼습니다.

이 오래된 깨진 virtualenv를 제거한 후에 문제가 사라졌습니다.


6

python3.6에서는 python3 -m venv myenv문서에 따라 시도했지만 너무 오래 걸렸습니다 . 매우 간단하고 빠른 명령은 python -m venv yourenv python3.6에서 나를 위해 일했습니다.


5

Mac에서 작동하려면 다음을 수행해야했습니다.

mkvirtualenv --python=/usr/bin/python3 YourEnvNameHere

원하는 파이썬 버전이 위치 사용하는 것입니다 정확한 위치를 찾으려면 which python2.7하거나 which python3.5또는 which python3.6다음에 대한 교체--python=DIRECTORY
Santhosh

3

virtualenv burritobrew install python3 와 함께 python3 ( ) 을 설치 하면 다음을 수행 할 수 있습니다 mkvirtualenv -p $(which python3) env_name

물론 virtualenv burrito는 래퍼 일 뿐이지 만 몇 년 동안 나에게 도움이되었으며 학습 곡선이 줄어 들었습니다.


3

virtualenv --python=/usr/local/bin/python3 <VIRTUAL ENV NAME> 가상 환경에 python3 경로 가 추가됩니다 .


2

그것은 나를 위해 일했다

virtualenv --no-site-packages --distribute -p /usr/bin/python3 ~/.virtualenvs/py3

2

Anaconda3 (Python 3) 작업시 문제가있는 사용자

당신은 사용할 수 있습니다

conda create -n name_of_your_virtualenv python=python_version 

환경을 활성화하려면 (Linux, MacOS)

source activate name_of_your_virtualenv

Windows의 경우

activate name_of_your_virtualenv

1

위의 모든 것을 시도했지만 여전히 작동하지 않았습니다. 난폭 한 힘으로 방금 아나콘다를 다시 설치하고 virtualenv를 다시 설치했습니다.

Amans-MacBook-Pro:~ amanmadan$ pip install virtualenv
You are using pip version 6.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting virtualenv
  Downloading virtualenv-15.0.3-py2.py3-none-any.whl (3.5MB)
    100% |████████████████████████████████| 3.5MB 114kB/s 
Installing collected packages: virtualenv
Successfully installed virtualenv-15.0.3
Amans-MacBook-Pro:python amanmadan$ virtualenv my_env
New python executable in /Users/amanmadan/Documents/HadoopStuff/python/my_env/bin/python
Installing setuptools, pip, wheel...done.
Amans-MacBook-Pro:python amanmadan$ 

1

Centos 7에서 Python 2.7.5를 기본 버전으로 유지하고 싶었지만 Python 2.x의 다른 가상 환경과 함께 실행되는 가상 환경에서 Python 3.6.1이 있습니다.

나는 아래의 최신 파이썬 버전에 대한 최적의 솔루션을 연결 발견 (파이썬 3.6.1) https://www.digitalocean.com/community/tutorial_series/how-to-install-and-set-up-a-local-programming -environment-for-python-3 . 다른 플랫폼에 대한 단계를 보여 주지만 기본 단계는

  1. 플랫폼에 python3.x 설치 (없는 경우)
  2. 플랫폼에 python3.x-devel 설치
  3. Python 3.x에서 가상 환경 작성 (예 : $ python3.6 -m venv virenv_test_p3 /)
  4. Python 3.x의 testenvironment를 활성화하십시오 (예 : source virenv_test_p3 / bin / activate)
  5. 새 python 3 가상 환경에서 사용하고 지원되는 패키지를 설치하십시오 (예 : pip install Django == 1.11.2)

1

아래의 간단한 명령은 버전 3.5로 가상 환경을 만들 수 있습니다

apt-get install python3-venv

python3.5 -m venv <your env name>

3.6으로 가상 환경 버전을 원한다면

python3.6 -m venv <your env name>


0

miniconda3 설치와 충돌하여 동일한 오류가 발생하여 "which virtualenv"를 입력하고 miniconda를 설치했고 해당 설치를 가리키는 경우 제거 할 수 있습니다 (나를 좋아하고 움직이지 않은 경우) 원하는 설치를 가리 키도록 환경 변수를 변경하십시오.


0

Windows 명령 줄에서 다음이 나를 위해 일했습니다. 먼저 파이썬 실행 파일이있는 위치를 찾으십시오.

where python

시스템의 다른 python.exe에 대한 경로가 출력됩니다. 여기 내 것이 었습니다.

C:\Users\carandangc\Anaconda3\python.exe
C:\Python27\python.exe

그래서 Python3의 경우 이것은 첫 번째 경로에 있었으므로 가상 환경 폴더를 만들려는 응용 프로그램의 루트 폴더로 cd합니다. 그런 다음 가상 환경 'venv'의 이름을 지정하여 Python3 실행 파일의 경로가 포함 된 다음을 실행합니다.

virtualenv --python=/Users/carandangc/Anaconda3/python.exe venv

다음으로 가상 환경을 활성화하십시오.

call venv\Scripts\activate.bat

마지막으로이 가상 환경에 대한 종속성을 설치하십시오.

pip install -r requirements.txt

가상 환경에서 애플리케이션에 필요한 라이브러리 / 모듈을 알고있는 경우이 requirements.txt를 수동으로 채울 수 있습니다. 다른 환경에서 응용 프로그램을 실행중인 경우 다음을 실행하여 종속성을 자동으로 생성 할 수 있습니다 (작동중인 환경의 응용 프로그램 폴더에 cd).

pip freeze > requirements.txt

그런 다음 '동결'된 requirements.txt가 있으면 다음을 사용하여 다른 컴퓨터 또는 클린 환경에 요구 사항을 설치할 수 있습니다 (응용 프로그램 폴더로 cd 후).

pip install -r requirements.txt

가상 환경에서 파이썬 버전을 보려면 다음을 실행하십시오.

python --version

그런 다음 voila ... 귀하의 가상 환경에서 Python3을 실행하고 있습니다. 나를위한 출력 :

Python 3.7.2
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.