为什么virtualenvwrapper创建与python2而不是python3相关的路径?

时间:2017-09-06 20:32:25

标签: python virtualenv virtualenvwrapper

我更新了mkvirtualenv和virtualenv

的版本
  

$ sudo pip install --upgrade virtualenv virtualenvwrapper

因为我的一生只使用Python 2,并且想使用-now-Python 3. virtualenvwrapper有一些问题。

然后我尝试为我的python3安装创建一个虚拟环境:

  

$ mkvirtualenv py3test -p / usr / bin / python3

环境是在~/.virtualenvs/py3test中创建的。一旦激活,我想安装我制作的包:

  

(py3test)$ pip install python-cantrips   (py3test)$ pip freeze

包装已正确安装。然后我安装ipython并运行它:

  

(py3test)$ pip install ipython   (py3test)$ ipython

我适当地输入ipython。但后来我......

import cantrips

它会以ImportError爆炸。然后我检查sys.path。问题在于: sys.path包含如下路径:' /home/myuser/.virtualenvs/py3test/lib/python2.7/site-packages' 。我不记得路径是否准确,因为我现在不在这样的电脑里。但我可以确定一件事:环境是用python3创建的(目录不是python2.7,而是我的virtualenv中的python3.5)。

那么:为什么virtualenv会为python3创建一个环境,而是将路径添加为python2.7环境呢?

1 个答案:

答案 0 :(得分:2)

发现它!

virtualenvvirtualenvwrapper没有问题。问题出在ipython上。实际上,ipython没有特别的问题,但是在virtualenv中可以访问脚本的方式。

在全球范围内,我安装了ipython(适用于全局python27)。当我在本地python3环境中安装ipython时,(shell)路径没有更新,直到我以某种方式再次刷新环境(例如,停用,再次激活)。因此,当我再次尝试时,ipython是合适的(我的环境中的本地ipython为3.5),并且生成的路径是预期的路径。