【发布时间】:2016-01-21 09:56:47
【问题描述】:
我无法获得 Python 包 gspread,以便在 GAE 中工作。
我的项目在D:\Documents\Google Cloud\myapp。我安装了gspread 使用:
c:\python27\python.exe setup.py install --home="D:\Documents\Google Cloud\myapp"
所有文件似乎都安装在D:\Documents\Google Cloud\myapp\lib\python 中,而我没有选择。实际上,我必须将此路径添加到PYTHONPATH 才能使 setup.py 正常运行。
如果我随后运行 Python,我可以在解释器中 import gspread。
但是,在我的应用程序中,我无法导入 (ImportError: No module named gspread),即使我将那条长路径添加到 sys.path。我的sys.path 在运行时包含以下值:
'D:\\Documents\\Google Cloud\\myapp\\lib\\python'
'D:\\Documents\\Google Cloud\\myapp'
'D:\\Documents\\Google Cloud\\myapp\\lib'
需要什么才能让这个第三方模块工作?
【问题讨论】:
-
是的,我确实看到了,但找不到任何适用的东西。我的模块不是源代码形式,而是通过 setup.py 添加的。我没有时间详细介绍 setup.py 的工作原理。
-
都适用。我知道 setup.py 是如何工作的。重新阅读答案,它就在那里
import sys sys.path.insert(0, 'libs')。请注意答案中的 hello/libs 与您的结构之间的相似性。您需要意识到开发服务器正在模拟生产沙箱,并且不会使用完全合格的路径。 -
我不会做的事情是将路径包含在应用程序的顶部。使用 app_config.py 设置全局路径之类的东西,因为它会在您的任何代码之前加载。
-
对不起,忘了说上面还在我的本地机器上运行,还没有部署到谷歌。我做了sys.path.insert,除了
sys.path中我手动添加的第一个路径,其他的都包含在GAE Launcher中。在...lib\path文件夹中,有一个gspread-0.2.5-py2.7.egg文件等。...lib\python是必须在sys.path中才能找到gspread的正确值吗?
标签: python google-app-engine google-cloud-platform setup.py gspread