virtualenvでPython 3を使用する


780

virtualenvを使用して、デフォルトバージョンのPython(2.7)でプロジェクトを実行します。1つのプロジェクトで、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
現在の環境でインタープリターの更新のみを試みましたか、それとも最初からやり直すことを決めましたか?
チャーリーパーカー

Macでシステムpythonを更新せずに(python2.xで維持)、python3のみを仮想環境にインストールすることは可能ですか?
6

回答:


1386

単に走る

virtualenv -p python3 envname

OPの編集後に更新:

ここで説明されているように、OPのvirtualenvのバージョンにバグがありました。次のコマンドを実行して問題を修正しました:

pip install --upgrade virtualenv

17
virtualenvのアップグレードは機能しましたが、何らかの理由でpython3の実行可能ファイルについても明示する必要がありましたvirtualenv -p $(which python3) envname
dkamins

2
新しい環境を作成するのではなく、現在の環境のpythonインタープリターを変更することは可能ですか?
チャーリーパーカー

Raspbian Jessieで「virtualenv --no-site-packages python3.4」が機能しました。--distributeは非推奨になり、virtualenvはpython3を使用するため、-pは必要ないようです。
alkopop79 2017年

なぜそれが実行した後ということでvirtualenv -p python3 my_virtual_envpython3仮想環境の外部からアクセス可能ですか?
Bishwas Mishra 2018

あなたは順番に次の2つの手順を実行することができ@CharlieParker:1.削除binlibincludelocalおよびshareプロジェクトのルートディレクトリにディレクトリを。2.ターミナルで実行:virtualenv -p python3 .現在のディレクトリで新しいPython3 virtualenvを初期化します。
Calleniah

251

Python 3には、仮想環境-venvのサポートが組み込まれています。代わりにそれを使用する方が良いかもしれません。ドキュメントを参照:

仮想環境の作成は、pyvenvスクリプトを実行することによって行われます。

pyvenv /path/to/new/virtual/environment

Python 3.6以降の更新:

以下のようpawciobiel正しくコメントpyvenvされた非推奨のPython 3.6のようと新しい方法は次のとおりです。

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

2
私はちょうどのpython 3.5.2と一緒にpyenvとの仕事にvirtualenvの左以来、私はあなたが正しいことを願って
Jayesh

1
場所に関連する問題を確認する情報は見つかりませんでした。再配置可能はオプションとして削除されました...今では不要ですか?彼らの回避策はありますか?それとも、アプリを準備するだけでは完全に役に立たないのですか?
JMベッカー

7
正確ですが、実行することもできます python3 -m venv /path/v3。pyvenvスクリプトはPython 3.6で非推奨になっているためです。
pawciobiel 2016年

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 2017年

3
誰もがpython3.6 -m venv <venvname>をアクティブにする方法を知っています。作成されたディレクトリにはScripts /はなく、bin /サブディレクトリにも "activate"はありません。
Shayne

60

私はpyenvを試してみましたが、Pythonのバージョン(グローバル、ローカルまたはフォルダー内または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のプラグインもありますが、どういうわけか私にはうまくいきませんでした。


あなたのメソッドは新しいPython環境を作成する必要があるようです。pyenvはvirtualenvで動作し、Pythonバージョンをいつでも簡単に変更できますか?
チャーリーパーカー

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>

Django固有の手順

システム全体に多くのpythonパッケージがある場合、--system-site-packagesDjangoの起動が非常に遅くなることに気付いたので、特に開発中はフラグを使用しないことをお勧めします。私はDjango環境の初期化がシステムパスからすべてのサイトパッケージを手動でスキャンして追加していると思います。これが理由かもしれません。でも、python manage.py shell非常に遅くなります。

その実験はどのオプションがよりうまくいくかを述べました。--system-site-packagesDjangoプロジェクトのフラグをスキップするだけでも安全かもしれません。


1
私はこれをOSXに適用しましたが、機能しました(ただし、使用しませんでしたapt-getbrew
sdkks '31年

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

私のために働いた。


やってみたのですがThe executable python3 (from --python=python3) does not exist、どうしますか?私はisntall python3を作成したかったのですが、それが良いアイデアであるかどうか、または私のシステムがどのpythonバージョンを使用しているか混乱するかどうかは不明でした
Charlie Parker

Ubuntu 16.04の魅力のように動作します!
Eric Vieira 2017年

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)

これがここでの最良の答えです
コリア

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

Pythonには、「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がセットアップされると、プロジェクトディレクトリ内にいくつかの新しいフォルダーが表示されます。それらの1つは「スクリプト」です。

venvをアクティブ化または呼び出すには、次のものが必要です。

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

シェルに「deactivate」と入力すると、仮想環境を非アクティブ化できます。これにより、プロジェクト固有のライブラリをインストールする準備ができました。このライブラリは、「Lib」フォルダーの下にあります。

================================編集1 ================ ====================以下で説明するシナリオは、最初に要求されたものではなく、誰かがpython拡張機能でvscodeを使用する場合に備えてこれを追加するだけです

python拡張でvsコードを使用する場合、グローバルインストールを指すPylintで問題が発生する可能性があります。この場合、pylintは仮想環境にインストールされているモジュールを認識できないため、インポート中にエラーが表示されます。

これを回避する簡単な方法を次に示します。

cd Workspace\Scripts
.\Activate.ps1
code .

基本的に、最初に環境をアクティブにしてからvs-codeを呼び出して、pylintが環境内で開始され、すべてのローカルパッケージを表示できるようにします。


virtualenvは仮想環境(workonなど)を日常的に使用していますが、新しい仮想環境を確実に作成するにpython3.xは、これが唯一の方法です。
ボブル2017

6

他の回答に加えて、実行しているvirtualenvのインスタンスを確認することをお勧めします。

which virtualenv

これにより/ usr / local / binに何かが表示される場合、システムのパッケージマネージャー(OPの場合はbrew)を使用せずに、virtualenvを(おそらくeasy_toolsまたはpipのインスタンスを使用して)インストールした可能性があります。これが私の問題でした。

数年前-私がさらに無知だったとき-私はvirtualenvをインストールし、それがシステムのパッケージ提供のvirtualenvをマスクしていました。

この古い壊れたvirtualenvを削除した後、私の問題はなくなりました。


6

python3.6ではpython3 -m venv myenv、ドキュメントに従ってを試しまし たが、とても時間がかかりました。したがって、非常にシンプルで迅速なコマンドは python -m venv yourenv python3.6で動作しました。


5

Macでは、それを機能させるために次のことを行わなければなりませんでした。

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

目的のpythonバージョンの場所を正確に見つけるには、which python2.7or which python3.5またはを使用しwhich python3.6て、about--python=DIRECTORY
Santhosh

3

python3(brew install python3)をvirtualenv burritoと一緒にインストールすると、次のことができます mkvirtualenv -p $(which python3) env_name

もちろん、virtualenv burritoは単なるラッパーであることは知っていますが、何年にもわたって役立ちました。




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

上記のものをすべて試しましたが、うまくいきませんでした。だから、力ずくで、anacondaを再インストールし、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 3.6.1を、Python 2.xの他の仮想環境と一緒に実行しています。

以下のリンクが最新のpythonバージョン(python 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のテスト環境をアクティブ化します(たとえば、ソース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のコマンドラインでは、以下がうまくいきました。まず、Python実行可能ファイルの場所を確認します。

where python

これにより、システム上の別のpython.exeへのパスが出力されます。これが私のものです:

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

Python3の場合、これは最初のパスに配置されていたので、仮想環境フォルダーを作成するアプリケーションのルートフォルダーにcdしました。次に、Python3実行可能ファイルへのパスを含む次のコマンドを実行し、仮想環境に 'venv'という名前を付けます。

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

次に、仮想環境をアクティブ化します。

call venv\Scripts\activate.bat

最後に、この仮想環境の依存関係をインストールします。

pip install -r requirements.txt

仮想環境でアプリケーションに必要なライブラリ/モジュールがわかっている場合は、このrequirements.txtを手動で入力できます。別の環境でアプリケーションを実行している場合は、以下を実行することで依存関係を自動的に作成できます(動作している環境のアプリケーションフォルダーに移動します)。

pip freeze > requirements.txt

次に、「凍結」したrequirements.txtを取得したら、次を使用して別のマシンまたはクリーンな環境に要件をインストールできます(アプリケーションフォルダーにcdした後)。

pip install -r requirements.txt

仮想環境でpythonバージョンを確認するには、次のコマンドを実行します。

python --version

次に出来上がり...仮想環境でPython3を実行します。私のための出力:

Python 3.7.2
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.