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
ただ走る
virtualenv -p python3 envname
OPの編集後に更新します。
ここ に記述されているように、OPのバージョンのvirtualenvにバグがありました。実行することで問題は解決しました:
pip install --upgrade virtualenv
Python 3は仮想環境 - venv をサポートしています。代わりにそれを使う方が良いかもしれません。ドキュメントを参照してください。
仮想環境の作成はpyvenvスクリプトを実行することによって行われます。
pyvenv /path/to/new/virtual/environment
Python 3.6以降用に更新:
pawciobiel 正しく comments 、pyvenv
は 非推奨 Python 3.6以降で、新しい方法は次のとおりです。
python3 -m venv /path/to/new/virtual/environment
前提条件をインストールします。
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>
システム全体のpythonパッケージがたくさんある場合は、Djangoの起動が遅くなることに気付いたので、特に開発中は--system-site-packages
フラグを使わないことをお勧めします。私は、Django環境の初期化が手動でシステムパスからすべてのサイトパッケージをスキャンして追加していることが原因と考えられます。 python manage.py Shell
でも非常に遅くなります。
その実験を言ったことがどちらの選択肢がよりうまくいくか。 Djangoプロジェクトでは--system-site-packages
フラグを飛ばしても安全かもしれません。
私は 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 用のプラグインもありますが、どういうわけか私にとってはうまくいきませんでした。
virtualenv --python=/usr/bin/python3 <name of env>
私のために働いた。
環境を作成するときに、特定の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)
私は同じERROR
メッセージを持っていました。私の場合、tbriskerのソリューションはうまくいきませんでした。代わりにこれで問題は解決しました:
$ python3 -m venv .env
他の答えに加えて、実行しているvirtualenvのインスタンスを確認することをお勧めします。
which virtualenv
これが/ usr/local/binにある場合、システムのパッケージマネージャを使わずに(おそらくOPの場合ではなく)virtualenvをインストールした可能性があります(easy_toolsまたはpipのインスタンスを使って)これは私の問題でした。
何年も前 - 私がもっと無知なとき - 私はvirtualenvをインストールしていて、それは私のシステムのパッケージ提供のvirtualenvを隠していました。
この古い壊れたvirtualenvを削除した後、私の問題は解決しました。
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が環境内で始まりすべてのローカルパッケージを見ることができるようにしています。
Python3.6で私はドキュメンテーションのようにpython3 -m venv myenv
を試みました、しかしそれはとても時間がかかりました。とてもシンプルで素早いコマンドはpython -m venv yourenv
です。私にとってpython3.6でもうまくいきました。
Macでは、動作させるために次のことをしなければなりませんでした。
mkvirtualenv --python=/usr/bin/python3 YourEnvNameHere
これが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
virtualenv --python=/usr/local/bin/python3 <VIRTUAL ENV NAME>
これはあなたの仮想環境の python3 pathを追加します。
virtualenv burrito とともにpython3(brew install python3
)をインストールすると、mkvirtualenv -p $(which python3) env_name
を実行できます。
もちろん、私はvirtualenv burritoが単なるラッパーであることを知っていますが、それは長年にわたって私に役立ってきており、学習曲線を減らすことができます。
それは私のために働いた
virtualenv --no-site-packages --distribute -p /usr/bin/python3 ~/.virtualenvs/py3
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
pipenv を使用していて、特定のバージョンをインストールしたいあなたのために:
pipenv install --python 3.6
私は、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のローカルプログラミング環境 。それは異なるプラットフォームのためのステップを示していますが、基本的なステップは
私は上記のすべてを試しました、それはまだうまくいきませんでした。だから力ずくで、私はちょうど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$
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
私はそれがminiconda3インストールと衝突しているので同じエラーを受けたので、あなたが "which virtualenv"とタイプした時、そしてあなたがminicondaをインストールしそしてそのインストールを指していればあなたはそれを取り除くことができます。または、環境変数を変更して必要なインストールを指すようにします。