我真的很困惑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的问题吗?
帮助将不胜感激!
答案 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