我在让 python 站点包 httplib2 在 IDLE 中正常工作方面遇到了很大的问题。我正在使用带有 OSX 10.8.3 和 python 2.7 的 mac。我使用以下安装步骤来安装带有 macports 的 httplib2:
1. $sudo port install py27-httplib2
我通过以下方式检查了它是否安装:
2. $port contents py27-httplib2
它返回了以下目录中的一大堆文件(我只显示前三个):
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/httplib2-0.8-py2.7.egg-info
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/httplib2/__init__.py
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/httplib2/__init__.pyc
然后我将以下行添加到我的 .bash_profile 文件中:
$echo "export PYTHONPATH=\"/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/httplib2:$PYTHONPATH\"">>.bash_profile
$source .bash_profile
我检查了这些路径确实已经被合并到环境中(但我也注意到我的 PATH 很乱):
$env
PATH=/sw/bin:/sw/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:
/opt/local/sbin:/opt/local/bin:/opt/local/sbin:
/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/bin:
/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/mysql/bin:
/Users/lydia/programs/pagan/bin
PWD=/Users/lydia
LANG=en_AU.UTF-8
SHLVL=1
HOME=/Users/lydia
PYTHONPATH=/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/httplib2:
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages:
然后我调用 python 并在终端窗口中运行 2 行代码,如下所示:
$python
>>> import sys
>>> import httplib2
如果我在 IDLE 中运行相同的两行代码,我会收到以下错误:
>>> import httplib2
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import httplib2
ImportError: No module named httplib2
我的问题是:我必须做什么才能让 IDLE 识别 httplib2 已安装并具有有效路径?由于我需要让我的代码在各种机器上工作,我无法在我的代码中硬编码 httplib2 的路径。
提前致谢!