编程语言
首页 > 编程语言> > GoogleAppEngine和最新的Python2.7:“ google”目录的位置

GoogleAppEngine和最新的Python2.7:“ google”目录的位置

作者:互联网

最新的Python2.7在dist-packages中有一个google目录,因此无法从另一个位置导入包含appengine和其他软件包的google目录.需要这样的目录才能有效地从dev_server上的GoogleAppEngine(GAE)代码导入.否则,此类导入将失败.此类导入的示例是:

从google.appengine.api导入邮件

产生

ImportError:没有名为appengine.api的模块

这个问题与here中的问题类似,并且在继Alex Martelli的reply之后,我的Google导入位置

In [1]: import google
In [2]: google.__file__
Out[2]: '/usr/lib/python2.7/dist-packages/google/__init__.pyc'

而不是我放置GAE解压缩文件的文件.

有建议的解决方法吗?我已经考虑过要解决此问题的肮脏技巧,例如将软链接放在dist-packages google目录中,但是同样,这很肮脏.

解决方法:

包有一个特殊的属性__path__,它告诉Python解释器在哪里寻找模块和子包.通过修改此设置,您可以让Python从两个google目录中查找内容.使用pkgutil模块,这应该可以工作(未经测试):

import pkgutil
import google
google.__path__ = pkgutil.extend_path(google.__path__, google.__name__)

标签:python-2-7,google-app-engine,python
来源: https://codeday.me/bug/20191201/2081609.html