Geo*_*tov 16 python python-venv
我已经安装了Python 3.4.0并创建了虚拟环境python -m venv myenv.如何在虚拟环境中更改Python版本?文件说:
每个虚拟环境都有自己的Python二进制文件(允许创建具有各种Python版本的环境),并且可以在其站点目录中拥有自己独立的已安装Python包集.
UPDATE
请注意,我从标准库询问venv,而不是virtualenv.让我提供一些链接.
我没有--python在venv中看到类似旗帜的东西.
venv和virtualenv绝对相似吗?venv是如此不受欢迎,没有人使用它,以便virtualenv仍然是标准?
Rot*_*eti 10
这些天,我建议使用Pipenv创建虚拟环境并在Python中处理项目依赖项.
Pipenv - Python.org官方推荐的Python打包工具,免费(自由).
Pipenv是一个旨在将最好的包装世界(捆绑商,作曲家,npm,货物,纱线等)带到Python世界的工具.在我们的世界里,Windows是一流的公民.
要创建虚拟环境,请进入项目目录并运行:
$ 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...
Run Code Online (Sandbox Code Playgroud)
用您需要的版本替换3.6.(您选择的版本必须安装在您的系统上.以下是您如何彼此相邻安装多个Python版本)
在您的环境中安装包:
source myvenv_foo/bin/activate # Activates venv 'myvenv_foo'
Run Code Online (Sandbox Code Playgroud)
或者如果依赖项仅用于开发目的(测试等):
deactivate
Run Code Online (Sandbox Code Playgroud)
在您的环境中运行一些东西.:
$ 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
Run Code Online (Sandbox Code Playgroud)
在Linux上,您可以轻松地在主要版本旁边安装多个版本的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...
Run Code Online (Sandbox Code Playgroud)
激活venv
source myvenv_foo/bin/activate # Activates venv 'myvenv_foo'
Run Code Online (Sandbox Code Playgroud)
停用venv
deactivate
Run Code Online (Sandbox Code Playgroud)
注意:pythonvspythonX.X
如果你安装了多个版本的Python,您可以通过添加版本NUM的命令例如访问每一个python3.5,python3.6等等.但是请记住,当你激活VENV,你把它绑定到清洁/ 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
Run Code Online (Sandbox Code Playgroud)
这是一个很好的问题,因为有几个名称和用途相似的python模块/库(内置和第三方)。完全可以同情OP的困惑。
实际上有两种不同的行为/职责:
1)。在(系统)Python解释器的不同版本之间切换的能力,例如。2.7.10或3.5.0等
2)。创建虚拟环境的能力(只是一个本地文件夹,其中包含特定版本python的所有管道(二进制文件和libs)。可以将其视为特定python版本的冻结本地实例。独立的轻量级python安装。
像模块pyvenv提供)2的上方。它将允许您创建一个虚拟环境,该环境设置为用于创建虚拟环境的Python版本。
$ python --version
Python 3.5.0
$ pyvenv myenv # myenv is now a local environment using Python 3.5.0
Run Code Online (Sandbox Code Playgroud)
有关pyvenv的更多信息,请参见library / venv
另一方面,类似模块pyenv(名称令人困惑,对吗?注意,pyenv,而不是py v env)控制着您的系统基本在运行哪个python版本。这提供了上面的1)。因此,当不通过pyvenv等运行特定的虚拟环境时,这是正在使用的“全局”版本。实际上,它比这更令人费解(因为您还可以设置本地配置等),但是从本质上讲,这足以进行讨论。
有关pyenv的更多信息,请参见github.com/yyuu/pyenv
假设我想运行python版本2.7.10和3.5.0,那么我将使用pyenv安装这两个版本(在这里,我选择为全局变量),并可以使用以下命令查看它:
$ 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
Run Code Online (Sandbox Code Playgroud)
是的,以上提到的每个模块/库都有几种突出的替代方案。关于Reddit / SOF等的详细讨论引起了激烈的讨论,这是最好的。他们中许多人做着非常相似的事情...
这根本不可能。要创建特定 Python 版本的 Python venv,我们需要这个特定版本。
显然,Python 解释器不会“包含”所有以前的版本及其行为。Python 3.4.1 不能在内部任何地方包含 Python 2.7.8 可执行文件。
| 归档时间: |
|
| 查看次数: |
10325 次 |
| 最近记录: |