我正在尝试为谷歌云设置一个python源文件。我在我的MAC OS 10.6上安装了一个GSUtil,并按照页面上的说明设置了文件的路径将此命令(export PYTHONPATH=${PYTHON PATH}:$HOME/gsutil/boto:$HOME/gsutil)添加到主目录下的.bash_profile中。
然后,我运行了以下代码:
#!/usr/bin/python
import StringIO
import os
import shutil
import tempfile
import time
from oauth2_plugin import oauth2_plugin
import boto
# URI scheme for Google Cloud Storage.
GOOGLE_STORAGE = 'gs'
# URI scheme for accessing local files.
LOCAL_FILE = 'file'
而且,编译器给了我一个错误,说
>>> [evaluate gs.py]
Traceback (most recent call last):
File "/Volumes/WingIDE-101-4.0.0/WingIDE.app/Contents/MacOS/src/debug/tserver/_sandbox.py", line 8, in <module>
File "/Users/lsangin/oauth2_plugin.py", line 18, in <module>
File "/Users/lsangin/google_appengine/cloudauth/oauth2client/appengine.py", line 24, in <module>
from google.appengine.ext import db
ImportError: No module named google.appengine.ext
>>> from google.appengine.ext
有人能帮我解决这个问题吗?(对不起,我是个新手!)提前谢谢。
当您将代码作为Google App Engine应用程序运行或部署时,AE工具会确保您可以访问特定于AE的模块(例如Google.appengine.ext),但听起来您试图将此脚本作为应用程序引擎之外的独立程序运行。如果是,您可能不需要appengine模块(如果没有看到更多的代码,很难说是肯定的)。如果我是正确的,并且这是一个在AE之外运行的小测试代码,请尝试注释掉导入和对缺失模块的引用。一旦你开始工作,如果/当你准备在应用程序引擎(本地开发环境或托管服务)下尝试你的程序时,请取消注释该代码。
您是否将oauth2_plugin.py
移动(或复制)到其他位置?堆栈跟踪中显示的是cloudauth/oauth2_plugin.py
(它是与应用程序引擎一起工作的插件),而不是oauth2_plugin/oauth2_plugin.py
(它可能是您想要的)。
你的完整PYTHONPATH是什么?
听起来你导入了错误的oauth2_plugin,因为gsutil/oauth2_plugin中的那个不依赖于应用程序引擎。
我遇到了同样的问题,因为我之前用gsutil/cloudauth/oauth2_plugin.py进行了测试,它仍然在PYTHONPATH中。
尝试用刷新PYTHONPATH
PYTHONPATH=""
source ~/.bashrc
我也遇到了同样的问题——我通过在PYTHONPATH中添加一个目录来解决它:https://stackoverflow.com/a/19019234/1741654