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


注意:对于Python 3.3+,请参阅下面Aelfin的答案。


在创建virtualenv实例时,使用--python(或short-p)选项指定要使用的python可执行文件,例如:

virtualenv --python="/usr/bin/python2.6" "/path/to/new/virtualenv/"

virtualenv --python=/usr/bin/python2.6 <path/to/myvirtualenv>

在我的Windows下,这是有效的:

virtualenv --python=c:\Python25\python.exe envname

没有python.exe,我得到了Windows错误:[错误5]访问被拒绝我用virtualenv1.6.1安装了Python2.7.1,我想要Python2.5。


当您在共享托管环境中,需要从源代码安装和编译Python,然后从Python版本创建venv时,可以遵循以下步骤。对于Python 2.7.9。你会按照以下思路做一些事情:

mkdir ~/src
wget http://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
tar -zxvf Python-2.7.9.tgz
cd Python-2.7.9
mkdir ~/.localpython
./configure --prefix=$HOME/.localpython
make
make install

虚拟环境

cd ~/src
wget https://pypi.python.org/packages/5c/79/5dae7494b9f5ed061cff9a8ab8d6e1f02db352f3facf907d9eb614fb80e9/virtualenv-15.0.2.tar.gz#md5=0ed59863994daf1292827ffdbba80a63
tar -zxvf virtualenv-15.0.2.tar.gz
cd virtualenv-15.0.2/
~/.localpython/bin/python setup.py install
virtualenv ve -p $HOME/.localpython/bin/python2.7
source ve/bin/activate   

当然,这可以适用于任何您想要复制您工作和部署的环境的情况。


假设您当前在virtualenv中安装了python 2.7。但要使用python3.2,您必须使用以下内容进行更新:

$ virtualenv --python=/usr/bin/python3.2 name_of_your_virtualenv

然后通过以下方式激活virtualenv:

$ source activate name_of_your_virtualenv

然后执行:python——shell中的版本,以检查您的版本现在是否已更新。


Mac OSX 10.6.8(雪豹):

1) 当您执行pipinstallvirtualenv时,pip命令与您的一个python版本相关联,virtualenv将安装到该版本的python中。你可以的

 $ which pip   

看看这是什么版本的python。如果您看到以下内容:

 $ which pip
 /usr/local/bin/pip

则执行以下操作:

$ ls -al /usr/local/bin/pip
lrwxrwxr-x  1 root  admin  65 Apr 10  2015 /usr/local/bin/pip ->
../../../Library/Frameworks/Python.framework/Versions/2.7/bin/pip

您可以在输出中看到python版本。

默认情况下,这将是用于您创建的任何新环境的python版本。但是,您可以使用-p标志指定计算机上安装的任何版本的python,以便在新环境中使用:

$ virtualenv -p python3.2 my_env  
Running virtualenv with interpreter /usr/local/bin/python3.2  
New python executable in my_env/bin/python  
Installing setuptools, pip...done.  

virtualenvmy_env将在当前目录中创建一个文件夹将包含Python可执行文件和pip的副本[command],可用于安装其他软件包。

http://docs.python-guide.org/en/latest/dev/virtualenvs/

virtualenv只是将python从计算机上的某个位置复制到新创建的myenv/bin/目录中。

2) 系统python位于/usr/bin中,而我安装的各种python版本默认安装在:

 /usr/local/bin

3) 我安装的各种蟒蛇都有类似于python2.7或python2.2的名称,我可以使用这些名称而不是完整路径。

==========虚拟说唱歌手=========

1) 我在让虚拟说唱歌手工作时遇到了一些问题。这就是我最后放入~/.bash_profile的内容:

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/django_projects  #Not very important -- mkproject command uses this
#Added the following based on: 
#http://stackoverflow.com/questions/19665327/virtualenvwrapper-installation-snow-leopard-python
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2.7 
#source /usr/local/bin/virtualenvwrapper.sh
source /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh

2) -p选项与virtualenvwrapper的工作方式不同:我必须指定要在新环境中使用的python解释器的完整路径(当我不想使用默认python版本时):

$ mkvirtualenv -p /usr/local/bin/python3.2 my_env
Running virtualenv with interpreter /usr/local/bin/python3
New python executable in my_env/bin/python
Installing setuptools, pip...done.
Usage: source deactivate

removes the 'bin' directory of the environment activated with 'source
activate' from PATH. 

与virtualenv不同,virtualenvwrapper将在$WORKON_HOME环境变量指定的位置创建环境。这将使您的所有环境保持在一个位置。


在mac上,我使用pyenv和virtualnvwrapper。我必须创造一个新的虚拟世界。你需要自制程序,如果你在mac上,我会假设你已经安装了,但只是为了好玩:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


brew install pyenv
pyenv install 2.7.10
pyenv global 2.7.10
export PATH=/Users/{USERNAME}/.pyenv/versions/2.7.10/bin:$PATH
mkvirtualenv -p ~/.pyenv/versions/2.7.10/bin/python  {virtual_env_name}

我还冻结了我的需求,这样我就可以简单地在新的virtualenv中重新安装:

pip install -r requirements.txt

您可以使用所需的python版本调用virtualenv。例如:

python3 -m virtualenv venv

或者直接指向虚拟路径。例如,对于窗口:

c:\Python34\Scripts\virtualenv.exe venv

通过运行:

venv/bin/python

Python 3.5.1 (v3.5.1:37a07cee5969, Dec  5 2015, 21:12:44) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

您可以看到安装在虚拟环境中的python版本


这对我有用

sudo apt-get install python3-minimal

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

-p方法运行良好,但您必须记住每次都使用它。如果您的目标是切换到较新版本的Python,这是一个痛苦,也可能导致错误。

您的另一个选项是设置一个环境变量,该变量的作用与-p相同。通过~/.bashrc文件或管理登录会话的环境变量的任何位置设置:

export VIRTUALENV_PYTHON=/path/to/desired/version

然后,每当您不在命令行上指定-p时,virtualenv就会使用它。


更简单的是,使用命令替换为您查找python2:

virtualenv-p$(哪个python2)<path/to/new/virtalenv/>

或者使用virtualvwrapper时:

mkvirtualenv-p$(哪个python2)<env_name>


从Python 3开始,文档建议使用以下方法创建虚拟环境:

python3 -m venv "my_env_name"

请注意,venv不允许使用其他版本的Python创建虚拟环境。为此,请安装并使用virtualenv包。


过时的信息

pyvenv脚本可用于创建虚拟环境:

pyvenv "/path/to/new/virtual/environment"

自Python 3.6以来已弃用。


有一种更简单的方法,

virtualenv venv --python=python2.7

感谢您的评论,只有在系统级安装了python2.7(例如/usr/bin/python2.7)时,这才有效。

否则,如果你正在使用自制程序,你可以使用路径来给你想要的。

virtualenv venv --python=/usr/local/bin/python

您可以找到安装python(Linux)或py-0p(Windows)的路径

这也适用于python 3。

which python3
>> /usr/local/bin/python3
virtualenv venv --python=/usr/local/bin/python3

最终冷凝至:

virtualenv venv -p `which python`
virtualenv venv -p `which python3`

在linux的windows子系统中:

为python3创建环境:virtualenv--python=/usr/bin/python3-env激活它:源env/bin/activate


是的,上面的答案是正确的,在基于Unix的系统(如Linux和MAC OS X)上运行良好。

我尝试使用以下命令为Python2&Python3创建virtualenv。

这里我分别使用了venv2和venv3作为Python2和Python3的名称。

蟒蛇2»

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$ 

蟒蛇3»

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$ 

在窗口上:

py -3.4x32 -m venv venv34

or

py -2.6.2 -m venv venv26

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


对于Mac(High Sierra),在python3上安装virtualenv并为python2创建virtualenv:

 $ python3 -m pip install virtualenv
 $ python3 -m virtualenv --python=python2 vp27
 $ source vp27/bin/activate
 (vp27)$ python --version
 Python 2.7.14

virtualenv -p python3 myenv

创建virtualenv的链接


这两个命令应该可以正常工作。

virtualenv-p python2 myenv(用于python2)

virtualenv-p python3 myenv(用于python2)


对于2019年的Debian(Debian 9)系统,我发现了一个简单的解决方案,可以从虚拟环境中解决问题。

假设虚拟环境是通过以下方式创建的:

python3.7 -m venv myenv

但只有python2和python2.7的版本,您需要python3.7的最新功能。

然后,只需运行以下命令:

(myvenv) $ python3.7 -m venv --upgrade /home/username/path/to/myvenv/

如果您的系统上已经有python3.7包,则将添加这些包。


这是virtualenv的错误。只是升级你的pip应该是解决方案。

pip安装—升级virtualenv


它在安装了python 2的windows上对我有效:

步骤1:安装python 3版本。步骤2:为创建env文件夹虚拟环境。步骤3:c:\Python37\python-m venvc: \path\到\env。

这是我如何在现有的python2安装上创建Python3虚拟环境的。


是的,您只需要安装另一版本的python,并在命令中定义另一版本python的位置,如:

virtualenv/home/copayroll/Documents/env-p/usr/bin/python3


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

pyenv install 3.7.3
pyenv local 3.7.3

检查您的python版本:

$ python --version
Python 3.7.3

使用venv创建虚拟环境:

python -m venv .

然后激活虚拟环境:

source bin/activate

检查您的python版本:

$ python --version
Python 3.7.3

您可能需要删除以前的虚拟环境

rm -rf bin

以下是如何在Visual Studio Code文件夹中创建虚拟环境的步骤:我使用了Powershell(管理员模式):1.我创建了一个VSCode文件夹-“D:\Code_Python_VE”,希望在其中创建虚拟环境。2.接下来,我键入命令-“pip3 install virtualenv”。(D:\Code_Python_VE>pip3安装virtualenv)3.D:\Code_Python_VE>python3-m venv项目_env4.D:\Code_Python_VE>project_env\Scripts\activate.bat5.D:\Code_Python_VE>ls-这将列出一个新目录“project_env”。6.D:\Code_Python_VE>代码。这将启动Visual Studio代码。确保命令为(code.)。7.使用以下内容创建launch.jason:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "python",
            "request": "launch",
            "name": "Python: Current File (Integrated Terminal 1)",
            "program": "${file}"
        },
        {
            "name": "Python: Current File (Integrated Terminal 2)",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        }
    ]
}

(请搜索如何转到“调试”窗口并在VS代码中添加新配置)。

在Visual studio代码中按F1,命令托盘将打开-选择Python解释器并选择虚拟环境project_env。添加带有一个语句打印的test.py文件(“Hello World”)。运行此程序。在Visual studio代码终端中-(project_env)d:\Code_Python_VE>Python-m pip安装--升级我希望这有帮助。


UBUNTU 19.04/全局Python 3.7。

这对我很有用,使用推荐的venv为python3开发启用了Python3.8环境。

安装3.8和3.8 venv模块:$sudo apt install python3.8 python3.8-venv加上您需要的任何其他模块

使用您想要的python版本创建虚拟环境

$ /usr/bin/python3.8 -m venv python38-env

切换到虚拟环境

$ source python38-env/bin/activate

python -V = python 3.8

〔2019年11月〕我需要在基于Python 3.8的Arch Linux系统上安装Python 3.7环境(env)。Python 3.7已不在系统中,因此我无法降级Python,以安装所需的包。

此外,我想在虚拟环境(venv)中使用该包/Python3.7。我就是这样做的。


下载Python版本源文件:

我从

https://www.python.org/downloads/source/

to

/mnt/Vancouver/apps/python_versions/src/python-3.7.4.tgz

然后,我将存档(源文件)提取到

/mnt/Vancouver/apps/python_versions/src/python-3.7.4/


安装:

[注:在我的系统env中,不是venv。]

cd /mnt/Vancouver/apps/python_versions/src/Python-3.7.4/
time ./configure                 ## 17 sec
time make                        ## 1 min 51 sec
time sudo make install           ## 18 sec
time make clean                  ## 0.3 sec

检查已安装的Python版本:

$ which python
/usr/bin/python

$ python --version
Python 3.8.0

$ which python3.7
/usr/local/bin/python3.7

$ python    ## Python 3.8 [system / env]
Python 3.8.0 (default, Oct 23 2019, 18:51:26) 
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

$ python3.7    ## newly-installed Python 3.7 package
Python 3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.version)
3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0]
>>>

$ python3.7 --version                                                                                                 
Python 3.7.4

如何为特定的Python版本创建venv:

https://docs.python.org/3/tutorial/venv.html12.2.创建虚拟环境用于创建和管理虚拟环境的模块称为venv。venv通常会安装您可用的最新版本的Python。如果您的系统上有多个版本的Python,则可以通过运行python3或您想要的任何版本来选择特定的Python版本。要创建虚拟环境,请确定要放置虚拟环境的目录,并以脚本的形式运行venv模块,路径如下:python3-m venv教程env这将创建教程env目录(如果它不存在),并在其中创建包含Python解释器副本、标准库和各种支持文件的目录。...


创建Python 3.7 venv[在Python 3.8操作环境/系统上]:

python3.7 -m venv ~/venv/py3.7      ## create Python 3.7-based venv
source ~/venv/py3.7/bin/activate    ## activate that venv
deactivate                          ## deactivate that venv (when done, there)

添加到~/.bashrc:

alias p37='echo "   [Python 3.7 venv (source ~/venv/py3.7/bin/activate)]" && source ~/venv/py3.7/bin/activate'

测试Python 3.7 venv:

$ p37                                                                                                                 
[Python 3.7 venv (source ~/venv/py3.7/bin/activate)]

(py3.7)$ python --version
Python 3.7.4

(py3.7)$ python
Python 3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.version)
3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0] 
>>>

这些对于Windows来说似乎有点过于复杂。如果您在运行python 3.3或更高版本的Windows上,可以使用python启动器py更轻松地执行此操作。只需安装不同的python版本,然后运行:

py -[my version] -m venv env

这将使用python[我的版本]在当前目录中创建一个名为env的虚拟环境。例如:

py -3.7 -m venv env
./env/Scripts/activate

这将使用python3.7创建一个名为env的虚拟环境并激活它。不需要路径或其他复杂的东西。


正如在多个答案中已经提到的,使用virtualenv是一个干净的解决方案。然而,每个人都应该注意的一个小陷阱是,如果在bash_aliases中设置了python的别名,例如:

python=python3.6

该别名也将在虚拟环境中使用。因此,在这个场景中,在虚拟env中运行python-V将始终输出3.6,而不管使用什么解释器来创建环境:

virtualenv venv --python=pythonX.X

我使用Windows,所以应该在pthon路径上使用.exe

virtualenv -p=C:\Python27\python2.exe <envname>

很惊讶至今没有人提到康达。我发现这比这里提到的其他方法要简单得多。假设我有python2.9和python2.7,我正在研究的一个项目是python2.5.4,我可以简单地使用conda命令为3.5.4创建隔离的虚拟env,而无需下载任何其他内容。

要首先查看可用python版本的列表,请使用以下命令

conda搜索“^python$”

要为python版本x.y.z创建虚拟环境,请使用以下命令

conda create-n yourenvname python=x.y.z

使用激活venv

conda激活你的envname

使用停用

conda停用

要在完成后删除虚拟环境,请使用以下命令

conda remove-n yourenvname--all


2020年底:

使用virtualenv最无缝的体验(附加的好处:任何可能的python版本)是使用pyenv及其(捆绑的)pyenv virtualenv插件(cfhttps://realpython.com/intro-to-pyenv/#virtual-环境和pyenv)

用法:pyenv virtualenv<python_version><environment_name>

安装:

首先检查您是否具备所有先决条件(取决于您的操作系统):https://github.com/pyenv/pyenv/wiki/Common-build-problems#prerequisites卷曲https://pyenv.run|巴什执行$SHELL

查阅https://github.com/pyenv/pyenv-installer

也就是说,现在代替使用virtualenv(和pip)的最佳选择是Poetry(以及上面指出的pyenv,以处理不同的python版本)。

另一个选项是Pipenv,因为它直接受到PyPA(pip和PyPI背后的组织)的支持,并且从5月底开始重新发布(在那之前,从2018年底就没有发布…)


这适用于我在Windows 10中的使用,在那里我有Python 3.7,并希望降级到Python 3.6.6中的项目:

我使用“venv”创建了一个名为“venv“的新环境,我从https://www.python.org/downloads/windows/ ; install“下载Windows x86-64可执行安装程序-”;然后在要创建环境的目录中使用以下命令行

>C: \用户\。。。\Python\Python36\Python.exe-m venv venv

最后,我使用命令行激活了环境:

>venv\Scripts\activate.bat

并通过调用以下命令检查python版本:

>python--版本Python 3.6.6


您应该安装Python版本。如果你有,那么基本上,

利用virtualenv,

virtualenv --python=python3.8 env/place/you/want/to/save/to

与venv

python3.8 -m venv env/place/you/want/to/save/to

以上示例适用于python3.8,您可以将其更改为具有不同版本的虚拟环境,前提是这些虚拟环境已安装在您的计算机中。


我将此答案用于Windows

https://stackoverflow.com/a/22793687/15435022

py -3.4 -m venv c:\path\to\wherever\you\want\it

在Linux Ubuntu 21.04(当前为Python 3.9.5)上,我需要获得Python 3.7.8的虚拟版本。开始工作的完整步骤:

查找所需的Python版本源代码,例如3.7.8在这里:https://www.python.org/downloads/release/python-378/

下载Gzipped源代码tarball

使用tar zxvf Python-3.0.8.tgz解压缩(如果与3.7.8不同,请根据需要修改版本号)

使用以下命令将解压缩的文件夹复制到/usr/bin:sudo cp-r Python-3.78/usr/bin

cd /usr/bin/Python-3.7.8/

如果您想了解目前的内容,请检查内容:ls

sudo time ./configure
sudo time make
time sudo make install
time make clean

检查python的设置和报告方式:

which python
python --version

应该都与您的主要安装有关(Python 3.9.5适用于我)

要检查新安装,请执行以下操作:

which python 3.7
python3.7 --version

应与3.7.8安装相关

如果要运行它进行检查,请执行以下操作:

python3.7
exit()

安装供应商:

sudo apt install venv

要创建venv(可能在您的repo中,如果是,请将.venv添加到.gitignore中):

python3.7 -m venv .venv

要激活您的venv:

source .venv/bin/activate

检查您的版本:

python --version

sudo添加apt存储库ppa:死蛇/ppa

sudo apt更新

sudo apt install python_version(例如:sudo apt-install python3.8)

python_version-m venv env(例如:python3.8-m venv nv)

.env/bin/activate

以上步骤将解决python版本的env问题。


这个问题的答案不应该那么复杂。。。

TL、DR:

在系统上安装您喜欢的python版本,并使用:

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

============================================

我使用venv安装虚拟环境

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

如果您尝试使用哪一条python,当您说“python”时,就会看到您所指的是哪一条python。例如,对我来说,它是:

which python

结果:/c/程序文件/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

(别忘了避开小路上的空隙)

就是这样!


假设我想使用python 3.8,而我使用的是MacOS。

brew install python@3.8

然后

python3.8 -m venv venv

简单:

Linux系统

virtualenv venv --python=/usr/bin/python3.9

窗户

virtualenv venv --python=C:\Users\username\AppData\Local\Programs\Python\Python\python.exe

仅适用于windows

在电脑中安装特定版本的python转到要创建虚拟环境的目录在文件资源管理器的位置栏中键入cmd并按enter键在cmd类型->pip上安装virtualenv然后在cmd中键入以下命令,使用virtualenv库创建虚拟env。->virtualenv-p=“C:\location of python\python.exe”<virtualenv_name>