pyvenv vs venv vs python-virtualenv vs virtualenv and 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

ここで何が起こっていますか?python-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をインストールする直前にpython3-pipをインストールしたので、その時点で中断しました

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

そして、追加のパッケージがそれらを上書きするのか、Python 2.7に移行するのかはわかりませんでした。

python 3が今後のデフォルトになるはずだと読みました。2.7と3.4の両方があり、別々のコマンドがあるので、Python 3がデフォルトであることを確認するだけでなく、インストールしたものがすべて2.7になり、2.7の代わりに使用されることを確認するにはどうすればよいですか?

ところで、私はsudo apt-get python3-virtualenvを試してみました:E:パッケージpython3-virtualenvが見つかりません


1
私はまだ、これらのすべての異なるが類似した名前の仮想環境パッケージの違いがあれば、それが何かを知りたいと思っています。
マリクA.ルミ

私は14.04を使用しているので、この回答は役に立ちました。
FriendFX

回答:


4

Python 3.xパッケージをPython仮想環境にインストールする方法は、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インストール最初のパッケージ名次のパッケージ名最後のパッケージ名

これは、最新バージョンの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
これは正しくないようです。Vivid(15.04)にはpython3-virtualenvpython3-venv利用可能なパッケージがあります。私はpython3-venv正しいパッケージであると仮定していますが、その場合、どのような目的がpython3-virtualenv役立つのか分かりません。
knite

間違っています。あなたは使用することができますvirtualenvPyPy、うまく例:を含む、任意のインタプリタで環境を作成する(実行ファイル)をvirtualenv -p python3 newenv
SAAJ

0

まあ、それは複雑になります。以下は、Ubuntu Xenial(私が使用するLinux Mintの基礎となるリリース)に対して表示されています。それを整理しましょう:

pyvenv

Python 3.3+ stdlibパッケージのラッパースクリプトを指します。しかし、Python 3.6から非推奨になりました。

また、仮想環境スイッチャーであるPyPiパッケージでもあります

venv

PyPi virtualenvパッケージPEP 405を参照)の改善と置換を目的としたPython 3.3+ stdlibパッケージです。しかし、まだ機能していないようです(少なくとも機能が完全ではありません)。

python-virtualenvおよびvirtualenv

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

ご覧のとおり、Python 3で実行されます。python-virtualenvパッケージはのように使用するためのもの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

virtualenvパッケージがを使用している場合でもわかるようにpython3-virtualenv、そのデフォルトはPython 2環境を作成することです。


私のマシンでも、Ubuntu 14.04を実行していた同じことがわかりました。- 「virtualenvパッケージがpython3-virtualenvを使用している場合でもわかるように、デフォルトではPython 2環境を作成します。」
カレル・
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.