Python 3.4.0をインストールし、python -m venv myenv
で仮想環境を作成しました。仮想環境でPythonバージョンを変更するにはどうすればよいですか?ドキュメントには次のように記載されています。
各仮想環境には独自のPythonバイナリ(さまざまなPythonバージョン)の環境の作成が可能)があり、独自の独立したインストール済みセットを持つことができますPythonパッケージ。
[〜#〜]更新[〜#〜]
Virtualenvではなく、標準ライブラリのvenvについて質問していることに注意してください。いくつかのリンクを提供させてください。
Venvに--python
フラグのようなものが表示されません。
Venvとvirtualenvは完全に似ていますか? venvはあまり人気がなく、誰も使用していないため、virtualenvは標準のままですか?
それは単に不可能です。 python特定のPythonバージョンのvenv)を作成するには、この特定のバージョンが必要です。
明らかに、Pythonインタープリターには以前のバージョンがすべて含まれているわけではありません。Python 3.4.1にはPython 2.7が含まれていません。内部のどこでも8つの実行可能ファイル。
Linux/Macでは、メインライブラリの横に簡単に Pythonの複数のバージョンをインストール でき、標準ライブラリの venv パッケージを使用して、各バージョンから仮想環境を作成できます> = 3.3。
venvを作成します
$ python3.3 -m venv myvenv_foo # Create a python3.4 venv named 'myvenv_foo'
$ python3.4 -m venv myvenv_bar # Create a python3.4 venv named 'myvenv_bar'
$ python3.5 -m venv myvenv_baz # Create a python3.5 venv named 'myvenv_baz'
# etc...
venvをアクティブにします
source myvenv_foo/bin/activate # Activates venv 'myvenv_foo'
venvを非アクティブ化
deactivate
注意:python
vs pythonX.X
複数のPythonバージョンがインストールされている場合は、コマンドにバージョン番号を追加することで、それぞれにアクセスできます。例:python3.5
、python3.6
など。ただし、venvをアクティブ化するときは、アクティブ化されている限り、それをclean/versionless python
コマンドにバインドすることに注意してください。例えば:
$ python -V # Use the *clean* 'python' command to show the main version of the OS.
Python 2.7.6
$ python3.5 -m venv myvenv_foo # Create a new venv from 'python3.5'.
$ source myvenv_foo/bin/activate # Activate venv.
$ python -V # The *clean* 'python' command is now bound to your activated venv.
Python 3.5.2
$ deactivate # Deactivate venv.
$ python -V # Now the *clean* command is bound back to the main version.
Python 2.7.6
注
Pipenv を使用して、
venv
パッケージ上で仮想環境を作成/処理することをお勧めします。公式ドキュメント から:
複数の仮想環境を直接管理するのは面倒になる可能性があるため、依存関係管理チュートリアルでは、作業するプロジェクトとアプリケーションごとに個別の仮想環境を自動的に管理する、より高レベルのツールであるPipenvを紹介します。
名前と目的が似ているpythonモジュール/ライブラリ(組み込みおよびサードパーティ)がいくつかあるため、これは非常に良い質問です。OPの混乱に完全に共感できます。
実際には2つの異なる行動/責任があります:
1)。(システム)の異なるバージョンを切り替える機能Pythonインタプリタ例2.7.10または3.5.0など
2)。仮想環境(特定のバージョンのPythonのすべての配管(バイナリとライブラリ)を含む単なるローカルフォルダー)を作成する機能。これは、特定のpythonバージョンのフリーズされたローカルインスタンスと考えることができます。本質的には、自己完結型の軽量pythonインストールです。
pyvenv
のようなモジュールは、上記の2)を提供します。これにより、作成に使用されたPython)のバージョンに設定された仮想環境を作成できます。
$ python --version
Python 3.5.0
$ pyvenv myenv # myenv is now a local environment using Python 3.5.0
Pyvenvの詳細については、 library/venv を参照してください。
一方、pyenv
のようなモジュール(名前は紛らわしいですよね?notice、pyenvであり、pyvenvではありません)、システムが基本的に実行しているpythonのバージョンを制御します。これにより、上記の1)が提供されます。したがって、pyvenvなどを介して特定の仮想環境を実行していない場合、これは使用中の「グローバル」バージョンです。実際、(ローカル構成などをセットアップすることもできるため)それよりも少し複雑ですが、基本的にはこれで十分です。
Pyenvの詳細については、 github.com/yyuu/pyenv を参照してください。
Pythonバージョン2.7.10および3.5.0を実行したい場合、pyenvを使用してこれら2つのバージョン(ここではグローバルとして選択)をインストールし、次を使用してこれを表示できます。
$ pyenv versions
system
* 2.7.10 (set by ~/.pyenv/version)
* 3.5.0 (set by ~/.pyenv/version)
$ python --version
Python 3.5.0
$ which python
~/.pyenv/shims/python
$ python2.7 --version
Python 2.7.10
はい、上記で参照したモジュール/ライブラリのそれぞれにいくつかの著名な代替手段があります。 Reddit/SOFなどの詳細についての白熱した議論と、どちらが最善かについての議論。それらの多くは非常に似たようなことをします...