virtualenv如何与包一起使用?

时间:2014-01-22 01:38:19

标签: python macos path virtualenv env

我真的很困惑virtualenv如何处理包。我在OSX上并使用Homebrew安装了python2和3,后跟pip install virtualenv

在终端:

cd Virtualenv/MyTestEnv
. bin/activate
pip install numpy

将numpy安装到我的virtualenv文件夹中,只有当我在该环境中运行我的程序时才能访问该文件夹。根据我的阅读,它通过修改系统 $ 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的问题吗? 帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

这是问题所在:

#!/usr/bin/env python

从virtualenv运行python的另一种方式对我来说感觉更自然是

MyTestEnv/bin/python wordsrt.py

试试这个。

答案 1 :(得分:0)

我设法解决了我的问题。

首先,当virtualenv打开时,我修改了我的bashrc以仅允许pip:

# pip should only run if there is a virtualenv currently activated
export PIP_REQUIRE_VIRTUALENV=true
# cache pip-installed packages to avoid re-downloading
export PIP_DOWNLOAD_CACHE=$HOME/.pip/cache
syspip(){
   PIP_REQUIRE_VIRTUALENV="" pip "$@"
}

然后为确保用户安装的二进制文件优先,我将其添加到我的bash_profile中 export PATH=/usr/local/bin:$PATH