【发布时间】:2014-10-07 13:38:41
【问题描述】:
我是 python 的新手(大约一周),所以也许我只是错过了一些明显的东西......
我无法在脚本code.py 中导入和使用模块。该模块是使用easy_install 安装的,名为googlemaps。我使用以下命令(成功)安装了它:
sudo easy_install googlemaps
当我尝试从 Python 解释器导入模块时,它似乎工作正常:
>>> googlemaps
<module 'googlemaps' from '/usr/local/lib/python2.7/dist-packages/googlemaps-1.0.2-py2.7.egg/googlemaps.pyc'>
但是,当我尝试在脚本中执行相同操作时,它会给出以下回溯:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/web/application.py", line 239, in process
return self.handle()
File "/usr/local/lib/python2.7/dist-packages/web/application.py", line 230, in handle
return self._delegate(fn, self.fvars, args)
File "/usr/local/lib/python2.7/dist-packages/web/application.py", line 420, in _delegate
return handle_class(cls)
File "/usr/local/lib/python2.7/dist-packages/web/application.py", line 396, in handle_class
return tocall(*args)
File "/var/www/example.com/application/code.py", line 57, in GET
self.generate_map()
File "/var/www/example.com/application/code.py", line 64, in generate_map
from googlemaps import GoogleMaps
ImportError: No module named googlemaps
我怀疑这是某种路径问题,但我不完全理解为什么或如何解决它。如果我从解释器发出以下内容:
>>> import sys
>>> sys.path
['', '/usr/local/lib/python2.7/dist-packages/googlemaps-1.0.2-py2.7.egg', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']
一切看起来都很好,但是如果我从脚本中执行相同的操作,结果会丢失 google-maps-1.0.2-py2.7.egg 条目:
['/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']
从脚本中使用时是否必须手动添加路径,或者我在这里缺少什么???我安装的其他模块没有这个问题。
【问题讨论】:
-
如果您使用的是 mod_wsgi,您可能需要重新加载服务器。
-
啊哈!这实际上起到了作用。那么是否需要更新 apache 用户的 PYTHONPATH 之类的东西?
-
不,只是它没有“即时”读取更改。
-
好的。好吧,如果您想将您的评论转换为答案,我会将其设为已接受的。或者,如果您愿意,我可以写一个答案。
-
您可以自己回答,然后接受您的回答。
标签: python easy-install