使用virtualenv与不同版本的Python

1709

我该如何为指定版本的Python创建虚拟环境?


12
提到你也可以使用virtualenvwrapper来完成这个操作。 - bias
21
值得注意的是,Python 3 中有一个内置的虚拟环境等效工具:venv - naught101
6
在当前环境中切换Python版本而不创建新的环境,是否有可能实现? - Charlie Parker
这个视频是virtualenv文档推荐的,它详细介绍了整个过程的步骤。 - AnandShiva
2
每当我在已创建的虚拟环境中使用sudo安装一些实用程序(如docker-compose)时,它会选择根Python和pip版本(3.6),而不是创建虚拟环境时使用的版本(3.7)。为什么会这样?但是当我在虚拟环境内运行python版本时,它会正确显示(3.7)。 - y_159
这对我有用:py -3.9 -m venv .venv - Paul Beloff
41个回答

5
在Windows系统上:
py -3.4x32 -m venv venv34

或者
py -2.6.2 -m venv venv26

这里使用了 py 启动器,该启动器将为您找到正确的 python 可执行文件(假设您已安装它)。


5

我使用pyenv来管理我的python版本。

pyenv install 3.7.3
pyenv local 3.7.3

检查你的Python版本:

$ python --version
Python 3.7.3

使用 venv 创建虚拟环境:
```html

使用 venv 创建虚拟环境:

```
python -m venv .

接下来激活虚拟环境:

source bin/activate

检查您的Python版本:

$ python --version
Python 3.7.3

您可能需要删除先前的虚拟环境。
rm -rf bin

1
如在另一个回答的评论中所提到的:使用 pyenv-virtualenv 和 pyenv 一起使用更加容易(参见 https://realpython.com/intro-to-pyenv/#virtual-environments-and-pyenv )。 - bluu
我必须运行一个 pyenv shell 来选择 Python 版本:pyenv shell 3.11.3,然后运行 python -m venv env 来创建虚拟环境。这将创建一个名为 env 的虚拟环境,使用的是 Python 3.11.3。要安装 Python 版本,请使用 pyenv install 3.11.2。为了使用 shell,您可能需要在第一次使用命令 pyenv shell 3.11.3 时遵循提示的配置步骤。 - TomasLangebaek

4

回答这个问题不应该那么复杂...

TL,DR:

在您的系统上安装您喜欢的 Python 版本,并使用以下命令:

/c/path/to/any/version/of/python -m venv my_venv

我使用 venv 来安装虚拟环境。

python -m venv <where/to/and/name_of_venv>

如果您尝试运行which python命令,您将看到您正在引用哪个 Python 版本。例如,对于我来说是:

which python

结果: /c/Program Files/Python36/python

现在你有了答案! 你可以在系统上安装任何版本的Python,并且同时拥有多个版本。例如,我在此目录中安装了Python3.7:“C:\Program Files\Python37”。 所以,现在我不再使用'python',而是通过/c/Program\ Files/Python37/python指定要使用哪个Python:

 /c/Program\ Files/Python37/python -m venv my_venv

(不要忘记转义路径中的空格)

就是这样!


4

2020年底:

使用virtualenv(任何可能的Python版本)的最无缝体验是使用pyenv及其(打包的)pyenv-virtualenv插件(参见https://realpython.com/intro-to-pyenv/#virtual-environments-and-pyenv

用法:pyenv virtualenv <python_version> <environment_name>

安装:

参见https://github.com/pyenv/pyenv-installer

话虽如此,现在最好的选择不是使用virtualenv(和pip),而是使用Poetry(以及上面提到的pyenv,来处理不同的Python版本)。

另一个选择是使用Pipenv,因为它直接得到了PyPA(pip和PyPI背后的组织)的支持,并自5月底以来重新开始发布(此前自2018年末以来没有发布...)。


4

我在Windows 10上尝试了这种方法,我的Python版本是3.7,我需要将其降级到Python 3.6.6以完成项目。具体步骤如下:

1. 使用"venv"创建一个名为"venv"的新环境。

2. 从https://www.python.org/downloads/windows/下载并安装"Download Windows x86-64 executable installer-"。

3. 在想要创建新环境的目录中使用以下命令行:

>C:\Users\...\Python\Python36\python.exe -m venv venv

4. 最后,使用以下命令行激活环境:

>venv\Scripts\activate.bat

5. 调用以下命令行检查Python版本:

>python --version Python 3.6.6


4

在Windows子系统中的Linux:

  1. Create environment for python3:

    virtualenv --python=/usr/bin/python3 env
    
  2. Activate it:

    source env/bin/activate
    

3
是的,以上答案都是正确的,在类Unix系统如Linux和MAC OS X上能够正常工作。
我尝试使用以下命令创建Python2和Python3的virtualenv。
在此,我已将venv2和venv3用作它们的名称来表示Python2和Python3。
Python2 »
MacBook-Pro-2:~ admin$ virtualenv venv2 --python=`which python2`
Running virtualenv with interpreter /usr/local/bin/python2
New python executable in /Users/admin/venv2/bin/python
Installing setuptools, pip, wheel...done.
MacBook-Pro-2:~ admin$ 
MacBook-Pro-2:~ admin$ ls venv2/bin/
activate        easy_install        pip2.7          python2.7
activate.csh        easy_install-2.7    python          wheel
activate.fish       pip         python-config
activate_this.py    pip2            python2
MacBook-Pro-2:~ admin$ 

Python3 »

MacBook-Pro-2:~ admin$ virtualenv venv3 --python=`which python3`
Running virtualenv with interpreter /usr/local/bin/python3
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.6'
New python executable in /Users/admin/venv3/bin/python3
Also creating executable in /Users/admin/venv3/bin/python
Installing setuptools, pip, wheel...done.
MacBook-Pro-2:~ admin$ 
MacBook-Pro-2:~ admin$ ls venv3/bin/
activate        easy_install        pip3.6          python3.6
activate.csh        easy_install-3.6    python          wheel
activate.fish       pip         python-config
activate_this.py    pip3            python3
MacBook-Pro-2:~ admin$ 

检查Python安装位置
MacBook-Pro-2:~ admin$ which python2
/usr/local/bin/python2
MacBook-Pro-2:~ admin$ 
MacBook-Pro-2:~ admin$ which python3
/usr/local/bin/python3
MacBook-Pro-2:~ admin$ 

3
假设我想使用Python 3.8,并且我正在使用MacOS操作系统。
brew install python@3.8

那么,

python3.8 -m venv venv

3
我使用Windows,所以应该在Python路径上使用.exe
virtualenv -p=C:\Python27\python2.exe <envname>

2

它对我有效

sudo apt-get install python3-minimal

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接