如何为指定版本的Python创建虚拟环境?
当前回答
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
在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
假设您当前在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中的版本,以检查您的版本现在是否已更新。
在我的Windows下,这是有效的:
virtualenv --python=c:\Python25\python.exe envname
没有python.exe,我得到了Windows错误:[错误5]访问被拒绝我用virtualenv1.6.1安装了Python2.7.1,我想要Python2.5。
virtualenv -p python3 myenv
创建virtualenv的链接