试图最终跳转到Python 3,但是遇到了virtualenvwrapper的一些问题。我首先创建虚拟环境,如下所示:
mkvirtualenv -p /usr/local/bin/python3 projectname
产生:
Running virtualenv with interpreter /usr/local/bin/python3
Using base prefix '/usr/local/Cellar/python3/3.3.3/Frameworks/Python.framework/Versions/3.3'
New python executable in projectname/bin/python3.3
Also creating executable in projectname/bin/python
Installing setuptools, pip...done.
到目前为止,这么好。我检查python控制台,以确保环境正在查看正确的解释器以及所有这些。这里是悲伤发生的地方(当virtualenv活跃时):
pip install flask
声称成功,但唉:
Python 3.3.3 (default, Jan 2 2014, 13:26:32)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.2.79)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import flask
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'flask'
问题在于:
$ pip show flask
---
Name: Flask
Version: 0.10.1
Location: /usr/local/lib/python3.3/site-packages
Requires: Werkzeug, Jinja2, itsdangerous
除非我完全误解了virtualenv / wrapper及其各自的魔法(我很有可能),似乎pip install是全局安装Flask而不是我的virtualenv中的site-packages,因此virtualenv是无视它。
有什么线索在这里发生什么/如何解决?假设virtualenvwrapper准备好使用python3的黄金时段,我错了吗?我不需要破坏我的.bashrc或手动设置环境变量的漂亮解决方案更可取。我希望有一种方法可以通过virtualenv和virtualenvwrapper提供的API来实现。
谢谢!
答案 0 :(得分:0)
我在pip安装包时遇到了问题,而不是在激活的virtualenv中。请查看问题(和答案)的pip installing in global site-packages instead of virtualenv。
基本上,解决方案包括修改virtualenv中pip脚本的shebang,因为它们指向错误的python安装(全局而不是virtualenv)。只需将shebang更改为指向正确的位置即可设置。
注意:应该归功于提出解决方案的Chase Ries。
答案 1 :(得分:0)
我有同样的问题。它似乎从Virtualenv 1.11.4开始解决。