【发布时间】:2014-02-11 21:35:25
【问题描述】:
我真的很困惑 virtualenv 如何处理包。我在 OSX 上并使用 Homebrew 安装了 python2 和 3,然后是 pip install virtualenv。
在终端:
cd Virtualenv/MyTestEnv
. bin/activate
pip install numpy
会将 numpy 安装到我的 virtualenv 文件夹中,只有在我在该 env 中运行我的程序时才能访问该文件夹。根据我的阅读,它通过修改系统 $PATH 来实现。 但是,当我尝试使用 numpy 运行程序时,我不能:
(MyTestEnv)___________________
| ~/desktop/Python @ My-MBP (chronologos)
| => ./wordsrt.py
Traceback (most recent call last):
File "./wordsrt.py", line 2, in <module>
import numpy
ImportError: No module named numpy
程序只有两行:
#!/usr/bin/env python
import numpy
当我执行pip list numpy 时显示为已安装?是hashbang的问题吗?
帮助将不胜感激!
【问题讨论】:
-
首先,
$PATH与站点包的去向和找到位置无关;这就是 shell 用来查找可执行文件的方法。$PYTHONPATH是 Python 的sys.path的起始值。 -
但是,您可能以某种方式运行系统范围的
pip而不是 virtualenv 的pip。如果您使用的是最新版本,我相信它可以检测到您在 virtualenv 中运行系统pip并给您一个错误/警告或安装到 virtualenv 中,所以……您在使用pip1.5?如果没有,请先尝试升级。 -
另外,请记住 OS X 已经自带了自己的 Python 2.7,所以通过 Homebrew 安装另一个,你打开了一罐你可能不想处理的蠕虫。例如,路径上的第一个
pip很容易成为 Apple Python 2.7pip,而python是 Homebrew Python 2.7(特别是因为两种安装都喜欢将脚本安装到/usr/local/bin中,而 Python 的标准尝试是消除歧义——给出python2.7和pip-2.7以及类似的名称——当它们都是 2.7 时没有帮助)。所以,如果你真的不需要 Homebrew 2.7,我会卸载它。 -
感谢您的所有回答。我在下面发布了我所做的。
标签: python macos path virtualenv env