我更新了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环境呢?
答案 0 :(得分:2)
发现它!
virtualenv
或virtualenvwrapper
没有问题。问题出在ipython
上。实际上,ipython
没有特别的问题,但是在virtualenv中可以访问脚本的方式。
在全球范围内,我安装了ipython
(适用于全局python27
)。当我在本地python3环境中安装ipython
时,(shell)路径没有更新,直到我以某种方式再次刷新环境(例如,停用,再次激活)。因此,当我再次尝试时,ipython
是合适的(我的环境中的本地ipython
为3.5),并且生成的路径是预期的路径。