Python3 pip在virtualenv中全局安装

fol*_*oof 5 python virtualenv virtualenvwrapper python-3.x python-3.3

试图最终跳转到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.
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.我检查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'
Run Code Online (Sandbox Code Playgroud)

这是问题所在:

$ pip show flask
---
Name: Flask
Version: 0.10.1
Location: /usr/local/lib/python3.3/site-packages
Requires: Werkzeug, Jinja2, itsdangerous
Run Code Online (Sandbox Code Playgroud)

除非我完全误解了virtualenv/wrapper及其各自的魔法(我很有可能),看起来像pip install是全局安装Flask而不是我的virtualenv中的site-packages,因此virtualenv忽略了它.

任何线索在这里发生了什么/如何解决?假设virtualenvwrapper准备好使用python3的黄金时段,我错了吗?我不需要破坏我的.bashrc或手动设置环境变量的漂亮解决方案更可取.我希望有一种方法可以通过virtualenv和virtualenvwrapper提供的api来实现.

谢谢!

ƘɌỈ*_*ƬƠƑ 0

我在全局范围内而不是在激活的 virtualenv 中安装 pip 软件包时遇到了问题。查看在全局站点包中安装 pip 而不是 virtualenv来解决问题(和答案)。

基本上,解决方案包括修改 virtualenv 中 pip 脚本的 shebang,因为它们指向错误的 python 安装(全局而不是 virtualenv 中)。只需将 shebang 更改为指向正确的位置即可。

注意:应归功于提出解决方案的 Chase Ries。