如何为指定版本的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环境变量指定的位置创建环境。这将使您的所有环境保持在一个位置。
其他回答
当您在共享托管环境中,需要从源代码安装和编译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
当然,这可以适用于任何您想要复制您工作和部署的环境的情况。
假设我想使用python 3.8,而我使用的是MacOS。
brew install python@3.8
然后
python3.8 -m venv venv
在我的Windows下,这是有效的:
virtualenv --python=c:\Python25\python.exe envname
没有python.exe,我得到了Windows错误:[错误5]访问被拒绝我用virtualenv1.6.1安装了Python2.7.1,我想要Python2.5。
从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`
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录