如何使用 Python 2.7 创建 Python 3.5 虚拟环境?
Posted
技术标签:
【中文标题】如何使用 Python 2.7 创建 Python 3.5 虚拟环境?【英文标题】:How to create a Python 3.5 virtual environment with Python 2.7? 【发布时间】:2017-07-11 16:11:45 【问题描述】:我的系统运行的是 CentOS 6。我没有管理员权限,所以sudo
不可用。我有可用的 Python 2.7.3 以及 pip
和 virtualenv
。我希望我可以使用这些来设置一个新的虚拟环境来安装和运行 Python 3.5 或更高版本。
我尝试了这里描述的方法: Using Python 3 in virtualenv
但是得到了这个错误:
$ virtualenv -p python3 venv
The path python3 (from --python=python3) does not exist
我的系统还安装了一个 Python 3.4 模块,所以我尝试了,但是 virtualenv 似乎在那里不起作用:
$ module load python/3.4.3
$ virtualenv -p python3 venv
-bash: virtualenv: command not found
这似乎是有道理的,因为 virtualenv
仅适用于 Python 2.7:
$ module unload python
$ module load python/2.7
$ which virtualenv
/local/apps/python/2.7.3/bin/virtualenv
因此,下一个合乎逻辑的步骤似乎是为我的 Python 3 安装 virtualenv
...但这也不起作用:
$ pip3 install virtualenv
Traceback (most recent call last):
File "/local/apps/python/3.4.3/bin/pip3", line 7, in <module>
from pip import main
ImportError: cannot import name 'main'
还有
$ pip3 install --user virtualenv
Traceback (most recent call last):
File "/local/apps/python/3.4.3/bin/pip3", line 7, in <module>
from pip import main
ImportError: cannot import name 'main'
我开始用 Google 搜索这条新的错误消息,但没有看到任何与这种情况相关的信息。有任何想法吗?即使我可以在我的 Python 3.4 模块上安装 virtualenv
,我仍然无法将其升级到 Python 3.5+ 吗?
为了解决问题,我还尝试从源代码编译我自己的 Python 3.6,但这也不起作用:
Python-3.6.0$ make install
if test "no-framework" = "no-framework" ; then \
/usr/bin/install -c python /usr/local/bin/python3.6m; \
else \
/usr/bin/install -c -s Mac/pythonw /usr/local/bin/python3.6m; \
fi
/usr/bin/install: cannot create regular file `/usr/local/bin/python3.6m': Permission denied
make: *** [altbininstall] Error 1
更多背景信息:
$ which pip3
/local/apps/python/3.4.3/bin/pip3
$ which python
/local/apps/python/3.4.3/bin/python
【问题讨论】:
要为python3.5创建一个virtualenv,你必须在你的操作系统上安装python3.5;你能用python3
打开python shell吗?我认为基于python3.4创建virtualenv时应该是virtualenv python3.4 venv
既然我不能从源代码安装 Python 3.x,我猜我就不可能安装 Python 3.5+ 了?运行 virtualenv -p /local/apps/python/3.4.3/bin/python venv
似乎确实可以正确创建虚拟环境,尽管它仍然没有根据需要运行 Python 3.5+。
【参考方案1】:
尝试以下命令:
pip3 install virtualenv
pip3 install virtualenvwrapper
mkdir ~/.virtualenvs
export WORKON_HOME=~/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
source ~/.bash_profile
which python3
现在把上一条命令中python3的path的结果复制到下面的命令中:
mkvirtualenv --python=python3/path/in/last/command myenv
我假设 pip3 已经安装。如果没有,请在运行这些命令之前安装它。
来源:https://docs.coala.io/en/latest/Help/MAC_Hints.html#create-virtual-environments-with-pyvenv
(我的机器上确实有 sudo 访问权限。没有它我没有尝试过命令。如果出现任何问题,请发布。)
由于您已经安装了 virtualenv,您可能只需要更新文件,然后使用适当的参数运行命令 mkvirtualenv。
【讨论】:
我用pip3 install
命令(相同的错误消息)和which python3
的结果更新了OP。【参考方案2】:
您可以下载miniconda 或Anaconda。它不需要超级用户权限,因为它安装在您的主目录中。安装后,您可以像这样创建新环境:
conda create -n py35 python=3.5
然后就可以切换到新环境了:
source activate py35
【讨论】:
看起来这行得通,在我的系统上运行module unload python
以清除加载的Python,然后运行export PYTHONPATH=/home/user/anaconda3/bin:$PYTHONPATH; export PATH=/home/user/anaconda3/bin:$PATH
以设置正确的路径变量【参考方案3】:
在 Windows 上试试这个。
virtualenv -p C:\Python35\python.exe django_concurrent_env
cd django_concurrent_env
.\Source\activate
deactivate
【讨论】:
以上是关于如何使用 Python 2.7 创建 Python 3.5 虚拟环境?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 GTK3 和 Python 2.7 中的图像对象上创建“点击事件”