pyvenv vs venv vs python-virtualenv vs virtualenv 및 python 3


13
malikarumi@Tetouan2:~$ pip install virtualenv
    Collecting virtualenv
    Downloading virtualenv-12.0.7-py2.py3-none-any.whl (1.8MB)
    100% |################################| 1.8MB 330kB/s 

malikarumi@Tetouan2:~$ pip freeze
    (a lot of stuff, but not virtualenv)

malikarumi@Tetouan2:~$ virtualenv testvenv1
    The program 'virtualenv' is currently not installed. You can install it by typing:
    sudo apt-get install python-virtualenv

무슨 일이야? -virtualenv == pyvenv는 무엇입니까? 여전히 깨지지 않았습니까? 원래 virtualenv가 여전히 python과 작동합니까? venv (너무 많은 이름 변형 !!!)가 표준 라이브러리의 일부인 경우 https://docs.python.org/3/library/venv.html 인데 왜 설치하라는 메시지가 표시됩니까?

그리고 그것을 설치하려고했을 때, 나는 얻었습니다 :

malikarumi@Tetouan2:~$ sudo apt-get install python-virtualenv
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following extra packages will be installed:
    python-colorama python-distlib python-html5lib python-pip python-setuptools

그 전에 python3-pip를 설치하면 나에게 주어진 것이기 때문에 어느 시점에서 중단되었습니다.

Setting up python3-setuptools (3.3-1ubuntu1) ...
Setting up python3-pip (1.5.4-1) ...

그리고 여분의 패키지가 그것들을 덮어 쓰거나 파이썬 2.7로 갈 것인지 확실하지 않았습니다.

파이썬 3이 기본으로 설정되어 있다고 읽었습니다. 2.7과 3.4가 있고 별도의 명령이 있으므로 Python 3을 기본값으로 설정하고 설치하는 것이 2.7 대신 대신 사용되는지 어떻게 알 수 있습니까?

BTW, 나는 sudo apt-get python3-virtualenv를 시도하고 얻었습니다 .E ​​: 패키지 python3-virtualenv를 찾을 수 없습니다


1
나는 여전히 다르지만 비슷한 이름의 가상 환경 패키지의 차이점이 무엇인지 알고 싶습니다.
Malik A. Rumi

14.04를 사용하고 있으므로이 답변이 도움 되었습니다.
FriendFX

답변:


4

Python 가상 환경에 Python 3.x 패키지를 설치하는 방법은 Python 3 가상 환경 작성자 ( python3-virtualenv ) 를 사용하여 Python 가상 환경을 작성하는 것 입니다. python3-virtualenv는 Ubuntu 14.10 이상의 기본 Ubuntu 리포지토리에 있습니다.

16.04 이상에서 Python 가상 환경에 Python 3.x 패키지 설치

  1. Python 3 가상 환경 생성기 설치

    sudo apt install virtualenv python3-virtualenv
  2. python3을위한 Python 가상 환경을 만듭니다. 이 Python 가상 환경에는 python3 패키지 만 설치할 수 있습니다. Python 2.x 패키지도 설치하려면 다른 Python 가상 환경을 만들어야합니다.

    virtualenv -p python3 env  
    source ./env/bin/activate

    python3의 새 Python 가상 환경 env은 현재 디렉토리에있는 디렉토리에 작성됩니다.

  3. Python 패키지를 설치하십시오.

    cd / path / to / env / # env는 python3 가상 환경의 디렉토리입니다
    소스 보관함 / 활성화
    pip3 first-package-name next-package-name last-package-name 설치

이것은 최신 버전의 pip3을 갖춘 새로운 python3 가상 환경이므로 Python 패키지를 설치하면 효과적입니다.


Ubuntu 14.04의 Python 가상 환경에서 Python 3.x 패키지 설치

sudo apt-get install virtualenvwrapper  
gedit .bashrc

.bashrc 끝에 다음 줄을 추가하십시오.

source /usr/share/virtualenvwrapper/virtualenvwrapper.sh

변경 사항을 .bashrc에 저장하고 gedit를 닫으십시오. 변경 사항을 적용하려면 .bashrc를 소싱하십시오.

cd 
source .bashrc

python3을위한 Python 가상 환경을 만듭니다. 이 Python 가상 환경에는 python3 패키지 만 설치할 수 있습니다. Python 2.x 패키지도 설치하려면 다른 Python 가상 환경을 만들어야합니다.

mkvirtualenv py3 -p /usr/bin/python3

python3의 새로운 Python 가상 환경이 ~/.virtualenvs/py3디렉토리에 작성됩니다 . .virtualenvs숨겨진 폴더입니다.

패키지를 설치하십시오.

cd ~ / .virtualenvs / py3
소스 보관함 / 활성화
pip3 설치 패키지 이름

4
이것은 정확하지 않은 것 같습니다. 생생한 (15.04)이 python3-virtualenvpython3-venv사용 가능한 패키지. python3-venv올바른 패키지 라고 가정합니다. 이 경우 어떤 용도로 python3-virtualenv사용 되는지 알 수 없습니다 .
knite

잘못되었습니다. virtualenv(실행 가능)을 사용하여 PyPy를 포함한 임의의 인터프리터가있는 환경을 만들 수 있습니다 virtualenv -p python3 newenv.
saaj

0

글쎄, 그것은 복잡해진다. 다음은 Ubuntu Xenial (Linux Mint의 기본 릴리스)에 대해 표시됩니다. 정리해 봅시다 :

피 벤브

Python 3.3+ stdlib 패키지 의 래퍼 스크립트를 나타냅니다. 그러나 Python 3.6부터 사용되지 않습니다.

또한 가상 환경 스위처 인 PyPi 패키지 이기도합니다 .

venv

PyPi virtualenv 패키지 를 개선하고 교체하는 것이 목적인 Python 3.3+ stdlib 패키지 입니다 ( PEP 405 참조 ). 그러나 아직 존재하지 않는 것 같습니다 (적어도 완전한 기능은 아닙니다).

python-virtualenv 및 virtualenv

$ apt-cache show virtualenv | grep Depends
Depends: python3, python3-virtualenv

보시다시피 파이썬 3에서 실행됩니다. python-virtualenvpackage는 다음과 같이 사용됩니다 python2 -m virtualenv py2. virtualenv새로운 Ubuntu Xenial ( docker run --rm -it ubuntu:xenial) 에서 어떻게 작동 하는지 봅시다 :

$ virtualenv
bash: virtualenv: command not found
$ apt-get update
...
$ apt-get install --yes --no-install-recommends virtualenv
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  ca-certificates dh-python libexpat1 libmpdec2 libpython3-stdlib
  libpython3.5-minimal libpython3.5-stdlib libsqlite3-0 libssl1.0.0
  mime-support openssl python-pip-whl python3 python3-minimal
  python3-pkg-resources python3-virtualenv python3.5 python3.5-minimal
Suggested packages:
  libdpkg-perl python3-doc python3-tk python3-venv python3-setuptools
  python3.5-venv python3.5-doc binutils binfmt-support
Recommended packages:
  file
The following NEW packages will be installed:
  ca-certificates dh-python libexpat1 libmpdec2 libpython3-stdlib
  libpython3.5-minimal libpython3.5-stdlib libsqlite3-0 libssl1.0.0
  mime-support openssl python-pip-whl python3 python3-minimal
  python3-pkg-resources python3-virtualenv python3.5 python3.5-minimal
  virtualenv
...
$ virtualenv test
The executable python2 (from --python=python2) does not exist
$ virtualenv -p python3 py3 
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /py3/bin/python3
Also creating executable in /py3/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
$ . py3/bin/activate
(py3) $ python --version
Python 3.5.2
(py3) $ deactivate
$ apt-get install --yes --no-install-recommends python    
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libffi6 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib
  python-minimal python2.7 python2.7-minimal
Suggested packages:
  python-doc python-tk python2.7-doc binutils binfmt-support
The following NEW packages will be installed:
  libffi6 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python
  python-minimal python2.7 python2.7-minimal
...
$ virtualenv py2 
Running virtualenv with interpreter /usr/bin/python2
New python executable in /py2/bin/python2
Also creating executable in /py2/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
$ . py2/bin/activate
(py2) $ python --version
Python 2.7.12

virtualenvpackage가을 사용 하더라도 알 수 있듯이 python3-virtualenv기본값은 Python 2 환경을 만드는 것입니다.


나는 또한 내 컴퓨터에서 당시 우분투 14.04를 실행하고있는 것과 동일한 것을 발견했습니다. - "virtualenv 패키지가 python3-virtualenv를 사용하고 있더라도 기본값은 Python 2 환경을 만드는 것입니다."
karel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.