我该如何为指定版本的Python创建虚拟环境?
我该如何为指定版本的Python创建虚拟环境?
注意: 对于 Python 3.3+,请参见Aelfinn的下面的答案。
创建虚拟环境实例时,使用--python
(或简写-p
)选项指定您想要使用的Python可执行文件,例如:
virtualenv --python="/usr/bin/python2.6" "/path/to/new/virtualenv/"
virtualenv -p \
which python2.6` <新虚拟环境的路径>` - blazepython3 -m venv "my_env_name"
另外,如果我们想要安装特定版本的Python,比如3.6,则可以执行以下命令:
python3.6 -m venv "my_env_name"
请确保在您现有的系统python的基础上安装所引用的Python版本。例如,如果您系统中已安装的版本仅为python 3.8
,则会遇到错误,指出“找不到命令'python3.6'”。
pyvenv
脚本可用于创建虚拟环境:
pyvenv "/path/to/new/virtual/environment"
自Python 3.6起已被弃用。
python3 -m venv <envname>
来运行它,以避免需要为所有内容编写存根脚本。 - Paul Everittpyvenv
脚本已经被弃用,但底层的venv
模块还没有。因此像@PaulEveritt所说的那样,使用python3 -m venv <myenvname>
命令。 - RichVelpyvenv
或python3 -m venv ...
不会安装python-config
脚本。这意味着即使激活了Python3环境,系统级别的python-config
也将被调用,可能会导致混乱的后果。请参见2011年的此错误报告https://github.com/pypa/virtualenv/issues/169和我的问题https://dev59.com/PlgQ5IYBdhLWcg3w6ISg?rq=1 - András Aszódivenv
的方法是在设置它时使用该版本。例如:python3.5 -m venv venv
- taniusvenv
中使用不同的Python版本仍然是可能的。与virtualenv
不同的是,您不需要提供参数,只需确保使用适当的Python版本来运行venv
。例如,使用Python launcher py
:py -3.3 -m venv my_venv
将创建一个使用Python 3.3的虚拟环境。 - cowlinator当您处于共享主机环境并需要从源代码安装和编译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
当然,这适用于任何需要复制您工作和部署环境的情况。
~/.localpython/bin/virtualenv
而不是仅使用 virtualenv
才能完成设置而不出现错误。此外,需使用 source ve/bin/activate
而不是 source activate
。 - Saul有一种更简单的方法,
virtualenv venv --python=python2.7
感谢评论,但这仅在您已经在系统级(例如 /usr/bin/python2.7)安装了Python 2.7的情况下才有效。
否则,如果您使用Homebrew,则可以使用路径来获得所需内容。
virtualenv venv --python=/usr/local/bin/python
你可以使用 which python
(Linux)或 py -0p
(Windows)找到你的 Python 安装路径。
这也适用于 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`
virtualenv env --python=python2
- Anshulvirtualenv venv --python=python3.8
是有效的,但是我们需要下载 Python3.8 对吧?现在我有 Python3.9 和 Python3.8,所以我才问这个问题。 - Rohan Devakivirtualenv --python=/usr/bin/python2.6 <path/to/myvirtualenv>
python3.6
,但不想触及计算机上已安装的python3.5
。 - alpha_989virtualenv --python=c:\Python25\python.exe envname
没有 python.exe
我得到了 WindowsError: [Error 5] 拒绝访问
。我安装了 Python2.7.1 和 virtualenv 1.6.1,但我需要 python 2.5.2。
Mac OSX 10.6.8 (Snow Leopard):
1)当您执行pip install virtualenv
时,pip命令会与您的某个Python版本相关联,并将virtualenv
安装到该版本的Python中。 您可以执行:
$ which pip
查看Python版本的方法是运行python --version
命令。如果你看到类似于以下内容:
$ 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.
virtualenv my_env
将在当前目录中创建一个文件夹,其中包含Python可执行文件和pip的副本[命令],您可以使用它来安装其他软件包。
http://docs.python-guide.org/en/latest/dev/virtualenvs/
virtualenv
只是将计算机上的 Python 复制到新创建的 my_env/bin/ 目录中。
2) 系统 Python 位于 /usr/bin
,而我安装的各种 Python 版本默认情况下安装在以下位置:
/usr/local/bin
3) 我安装的各种Python版本都有像 python2.7
或者 python3.2
这样的名称,我可以使用这些名称而不是完整路径。
1) 我在让 virtualenvwrapper 正常工作上遇到了一些问题。这是我最终放置在 ~/.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环境变量指定的位置创建环境。这可以将所有的环境保存在一个地方。
mkproject
就是要使用的命令。mkproject -p /usr/bin/python3.6 myNewPython36Project
- Jim Factor/usr/local/bin
目录并执行ls -al pip
命令时,我得到了以下结果:-rwxr-xr-x 1 root admin 266 23 Mar 09:40 pip
。 - kd12345/usr/bin/python3
可能是预装在您的系统上的Python。 - 7stud[2019年11月] 我需要在基于Python 3.8的Arch Linux系统上安装Python 3.7环境(env)。由于系统中没有Python 3.7,因此我无法降级Python以安装所需的软件包。
此外,我想在虚拟环境(venv)中使用该软件包/ Python 3.7。以下是我这样做的方法。
下载Python版本源文件:
我从以下链接下载了Python 3.7.4源文件:
并将其保存到:
/mnt/Vancouver/apps/python_versions/src/Python-3.7.4.tgz
然后我将档案(源文件)解压缩到:
/mnt/Vancouver/apps/python_versions/src/Python-3.7.4/
安装:
[注:在我的系统环境中,不是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版本创建虚拟环境:
https://docs.python.org/3/tutorial/venv.html
12.2. 创建虚拟环境
用于创建和管理虚拟环境的模块称为
venv
。venv
通常会安装您可用的最新版本的Python。 如果您的系统上有多个Python版本,则可以通过运行python3或任何其他所需版本来选择特定的Python版本。要创建虚拟环境,请确定要放置它的目录,并将venv模块作为脚本与目录路径一起运行:
python3 -m venv tutorial-env
如果不存在,则将创建
tutorial-env
目录,并在其中创建包含Python解释器、标准库和各种支持文件的目录。 ...
在Python 3.8操作环境/系统中创建Python 3.7虚拟环境:
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]
>>>
,我强烈建议改为以普通用户身份安装,例如,
./configure --prefix=。然后您可以执行
virtualenv --python=python3.8 env/place/you/want/to/save/to
使用 venv
python3.8 -m venv env/place/you/want/to/save/to
以上示例适用于Python 3.8,您可以更改它以获得不同版本的虚拟环境,前提是它们已安装在您的计算机上。
python3.2
版本,您需要执行以下更新操作:$ virtualenv --python=/usr/bin/python3.2 name_of_your_virtualenv
然后通过以下方式激活你的虚拟环境:
$ source activate name_of_your_virtualenv
然后在终端中执行 python --version
命令,检查您的版本是否已更新。