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


当前回答

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

其他回答

当您在共享托管环境中,需要从源代码安装和编译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   

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

在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

我使用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

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

python=python3.6

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

virtualenv venv --python=pythonX.X

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

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