Python pip安装的软件包不在sys.path中

Python pip安装的软件包不在sys.path中,python,virtualenv,pip,Python,Virtualenv,Pip,我是个巨蟒迷。安装了virtualenv和pip,我觉得一切正常,但在尝试导入通过pip安装的包时,python找不到它们。我在OS X上,在/usr/bin中安装了系统python 2.6,因此通过软件包安装程序将2.7安装到/usr/local/bin中。在安装pip和virtualenv时,我首先将路径设置为have/usr/local/bin,以确保使用了2.7 python (pysite)sbeam@pris ~/Sites]$ pip freeze Django==1.4 Mark

我是个巨蟒迷。安装了virtualenv和pip,我觉得一切正常,但在尝试导入通过pip安装的包时,python找不到它们。我在OS X上,在
/usr/bin
中安装了系统python 2.6,因此通过软件包安装程序将2.7安装到
/usr/local/bin
中。在安装pip和virtualenv时,我首先将路径设置为have
/usr/local/bin
,以确保使用了2.7 python

(pysite)sbeam@pris ~/Sites]$ pip freeze
Django==1.4
Markdown==2.1.1
psycopg2==2.4.5
wsgiref==0.1.2

(pysite)sbeam@pris ~/Sites]$ echo $PYTHONPATH

(pysite)sbeam@pris ~/Sites]$ which python
/Users/sbeam/.virtualenvs/pysite/bin/python

(pysite)sbeam@pris ~/Sites]$ env | grep VIRTUAL
VIRTUALENVWRAPPER_PROJECT_FILENAME=.project
VIRTUAL_ENV=/Users/sbeam/.virtualenvs/pysite
VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
VIRTUALENVWRAPPER_HOOK_DIR=/Users/sbeam/.virtualenvs
VIRTUALENVWRAPPER_LOG_DIR=/Users/sbeam/.virtualenvs

(pysite)sbeam@pris ~/Sites]$ python
Python 2.7.3 (v2.7.3:70274d53c1dd, Apr  9 2012, 20:52:43) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> from pprint import pprint as pp
>>> pp(sys.path)
['',
 '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/distribute-0.6.27-py2.7.egg',
 '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-0.7.2-py2.7.egg',
 '/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
 '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
 '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
 '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
 '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
 '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
 '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
 '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
 '/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages']
>>> import markdown
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named markdown
(pysite)sbeam@pris~/Sites]$pip冻结
Django==1.4
降价==2.1.1
psycopg2==2.4.5
wsgiref==0.1.2
(pysite)sbeam@pris~/Sites]$echo$PYTHONPATH
(pysite)sbeam@pris~/Sites]$which python
/Users/sbeam/.virtualenvs/pysite/bin/python
(pysite)sbeam@pris~/Sites]$env| grep虚拟
VirtualEnvrapper\u项目\u文件名=.PROJECT
VIRTUAL_ENV=/Users/sbeam/.virtualenvs/pysite
virtualEnvrapper_PYTHON=/usr/local/bin/PYTHON
virtualEnvrapper\u HOOK\u DIR=/Users/sbeam/.virtualenvs
VIRTUALENVWRAPPER\u LOG\u DIR=/Users/sbeam/.virtualenvs
(pysite)sbeam@pris~/Sites]$python
Python 2.7.3(v2.7.3:70274d53c1dd,2012年4月9日,20:52:43)
[GCC 4.2.1(苹果公司建造5666)(dot 3)]关于达尔文
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入系统
>>>从pprint导入pprint作为pp
>>>pp(系统路径)
['',
“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/distribute-0.6.27-py2.7.egg”,
“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/pip-0.7.2-py2.7.egg”,
“/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip”,
“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7”,
“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat darwin”,
“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac”,
“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat mac/lib scriptpackages”,
“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk”,
“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib old”,
“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib dynload”,
“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages”]
>>>进口降价
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ImportError:没有名为markdown的模块

请注意,根据设计和请求,
virtualenv
的新版本(1.7+)默认情况下不包括系统中的
站点包

您可以在创建virtualenv时显式使用
--系统站点包
,请参见:


或者,当我想确保在我的virtualenv中使用Python版本时,您可以在virtualenv do
pip install-r requirements.txt中获取freeze的输出,我发现通过
--python
标志将路径传递给python可执行文件比摆弄
路径更有用:
virtualenv--python=/usr/local^Cin/python2.7 myenv
您试过了吗?我在Mac OS中有很多关于Python的PITA,据我记忆所及,这是唯一可靠的解决方案。我在创建一个新的virtualenv时尝试了这个标志,它没有什么不同。Dumb问题,但是你用Python 2.7安装了pip吗?你能添加
哪个pip
的输出吗?好的,但问题是pip安装了软件包(例如,markdown)不在
sys.path
中,这不是因为找不到系统包。我尝试使用
--system site packages
标志创建一个新的virtualenv,但没有任何区别,因为我没有在全局安装任何包。您的输出是否都来自同一个shell会话(因此在virutal env中)-如果运行
/Users/sbeam/.virtualenvs/pysite/bin/python
并检查sys.path,您会得到什么?