web-dev-qa-db-ja.com

VirtualenvでPython 3を使う

virtualenv を使用して、私は自分のプロジェクトをデフォルトバージョンのPython(2.7)で実行します。あるプロジェクトでは、Python 3.4を使う必要があります。

私のMacにインストールするにはbrew install python3を使いました。では、どうやって新しいバージョンを使用する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
665
Prometheus

ただ走る

virtualenv -p python3 envname

OPの編集後に更新します。

ここ に記述されているように、OPのバージョンのvirtualenvにバグがありました。実行することで問題は解決しました:

pip install --upgrade virtualenv
1199
tbrisker

Python 3は仮想環境 - venv をサポートしています。代わりにそれを使う方が良いかもしれません。ドキュメントを参照してください。

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

pyvenv /path/to/new/virtual/environment

Python 3.6以降用に更新:

pawciobiel 正しく commentspyvenv非推奨 Python 3.6以降で、新しい方法は次のとおりです。

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

前提条件をインストールします。

Sudo apt-get install python3 python3-pip virtualenvwrapper

Python 3ベースの仮想環境を作成します。オプションで--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のような共通のパッケージをグローバルにインストールしてからvirtualenvsでそれらを再利用することが通常推奨されます。

この手法を使用すると、最小限のディスク容量とネットワーク帯域幅を消費することを除けば、パッケージの取得とインストールに費やす時間を大幅に節約できます。

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

Django特有の指示

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

その実験を言ったことがどちらの選択肢がよりうまくいくか。 Djangoプロジェクトでは--system-site-packagesフラグを飛ばしても安全かもしれません。

52
Sandeep

私は 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 用のプラグインもありますが、どういうわけか私にとってはうまくいきませんでした。

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

私のために働いた。

32
bewithaman

環境を作成するときに、特定の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)
17
Kiran Jasvanee

私は同じERRORメッセージを持っていました。私の場合、tbriskerのソリューションはうまくいきませんでした。代わりにこれで問題は解決しました:

$ python3 -m venv .env
10
Aziz Alto

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

which virtualenv

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

何年も前 - 私がもっと無知なとき - 私はvirtualenvをインストールしていて、それは私のシステムのパッケージ提供のvirtualenvを隠していました。

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

6
sage

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 codeを使う、あなたはグローバルなインストールを指すそのpylintに関する問題に直面するかもしれません。この場合、pylintはあなたの仮想環境にインストールされているモジュールを見ることができず、インポート中にエラーを表示します。

ここ はこれを乗り越えるための簡単な方法です。

cd Workspace\Scripts
.\Activate.ps1
code .

私たちは基本的に最初に環境をアクティブにしてからvs-codeを呼び出してpylintが環境内で始まりすべてのローカルパッケージを見ることができるようにしています。

6
Blaze

Python3.6で私はドキュメンテーションのようにpython3 -m venv myenvを試みました、しかしそれはとても時間がかかりました。とてもシンプルで素早いコマンドはpython -m venv yourenvです。私にとってpython3.6でもうまくいきました。

6
Sujeet Agrahari

Macでは、動作させるために次のことをしなければなりませんでした。

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

これがpython/python3で仮想環境を実行するために必要なすべてです。

最初に virtualenv があることを確認してください

実行します。

virtualenv -p python3 <env name>

上記のcmdが失敗する場合があります。単にこれを使用してください。

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

実行(終了)します。

deactivate 
4
Kohn1001

virtualenv --python=/usr/local/bin/python3 <VIRTUAL ENV NAME>これはあなたの仮想環境の python3 pathを追加します。

3
Hardik Gajjar

virtualenv burrito とともにpython3(brew install python3)をインストールすると、mkvirtualenv -p $(which python3) env_nameを実行できます。

もちろん、私はvirtualenv burritoが単なるラッパーであることを知っていますが、それは長年にわたって私に役立ってきており、学習曲線を減らすことができます。

3
Antony

それは私のために働いた

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

Anaconda 3(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
2
jkhosla

pipenv を使用していて、特定のバージョンをインストールしたいあなたのために:

pipenv install --python 3.6
1
Vlad Bezden

私は、Centos 7ではpython 2.7.5をデフォルトのバージョンのままにしておきたいのですが、python 2.xでは他の仮想環境と一緒に実行されている仮想環境でpython 3.6.1を使用したいと思いました。

私は以下のリンクが最新のpythonバージョン(python 3.6.1) https://www.digitalocean.com/community/tutorial_series/how-to-install-and-set-up-a-に最適な解決策を見つけましたpython-3のローカルプログラミング環境 。それは異なるプラットフォームのためのステップを示していますが、基本的なステップは

  1. あなたのプラットフォーム用にpython3.xをインストールしてください(存在しない場合)
  2. あなたのプラットフォーム用にpython3.x-develをインストールしてください。
  3. Python 3.xで仮想環境を作成します(例えば$ python3.6 -m venv virenv_test_p3 /)。
  4. Python 3.xのテスト環境をアクティブにします(例:source virenv_test_p3/bin/activate)。
  5. 新しいpython 3仮想環境で使いたい、そしてサポートされているパッケージをインストールしてください(例えばpip install Django == 1.11.2)
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
Aman Madan

Windowsのコマンドラインでは、以下がうまくいった。最初にあなたのpython実行ファイルがどこにあるのかを調べてください:

where python

これはあなたのシステム上の異なるpython.exeへのパスを出力します。これが私のものです:

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

そのため、Python 3では、これは最初のパスに配置されていたので、仮想環境フォルダを作成するアプリケーションのルートフォルダに移動します。それから、私の仮想環境を 'venv'と命名して、私のPython3実行ファイルへのパスを含む以下を実行します。

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

次に、仮想環境を有効にします。

call venv\Scripts\activate.bat

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

pip install -r requirements.txt

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

pip freeze > requirements.txt

その後、 'frozen'したRequirements.txtを入手したら、次のようにして(アプリケーションフォルダに移動した後で)他のマシンまたはクリーンな環境に要件をインストールできます。

pip install -r requirements.txt

仮想環境であなたのpythonのバージョンを見るには、以下を実行してください。

python --version

それでは...あなたはあなたのPython3をあなたの仮想環境で動かしています。私のために出力:

Python 3.7.2
0
Carlo Carandang

私はそれがminiconda3インストールと衝突しているので同じエラーを受けたので、あなたが "which virtualenv"とタイプした時、そしてあなたがminicondaをインストールしそしてそのインストールを指していればあなたはそれを取り除くことができます。または、環境変数を変更して必要なインストールを指すようにします。

0
PrincessPea