如何为指定版本的Python创建虚拟环境?
当前回答
在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
其他回答
注意:对于Python 3.3+,请参阅下面Aelfin的答案。
在创建virtualenv实例时,使用--python(或short-p)选项指定要使用的python可执行文件,例如:
virtualenv --python="/usr/bin/python2.6" "/path/to/new/virtualenv/"
正如在多个答案中已经提到的,使用virtualenv是一个干净的解决方案。然而,每个人都应该注意的一个小陷阱是,如果在bash_aliases中设置了python的别名,例如:
python=python3.6
该别名也将在虚拟环境中使用。因此,在这个场景中,在虚拟env中运行python-V将始终输出3.6,而不管使用什么解释器来创建环境:
virtualenv venv --python=pythonX.X
〔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]
>>>
很惊讶至今没有人提到康达。我发现这比这里提到的其他方法要简单得多。假设我有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
这适用于我在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