3

[注意,我删除了一些信息,例如我的用户名和电子表格的 ID] 嗨!我在 Mac 上,我正在尽力为 google python 安装 gdata。在继续之前,我在这里使用本教程: http ://code.google.com/apis/gdata/articles/python_client_lib.html 我有 python 版本:2.6.1,所以我按照说明跳过安装依赖项。

终端看起来像:

Last login: Sat Jan  1 11:28:47 on ttys000 
Users-MacBook-Pro:~ user$ python -V 
Python 2.6.1 
Users-MacBook-Pro:~ user$ 

我启动了 python 解释器并尝试导入 xml 树。什么也没发生,所以我尝试进口香蕉。终端看起来像:

Last login: Sat Jan  1 11:30:26 on ttys000 
Users-MacBook-Pro:~ user$ python 
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from xml.etree import ElementTree 
>>> from ninjas import banannas 

Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
ImportError: No module named ninjas 

这让我很确定我有 xmltree,尽管我不记得曾经安装过它。至此,我下载了gdata库,我的mac自动解压了。然后我运行安装命令,并运行测试命令。我的终端看起来像这样:

 Last login: Sat Jan  1 11:31:21 on ttys000 
    Users-MacBook-Pro:~ user$ cd /Users/User/Downloads/gdata-2-1.0.13 
    Users-MacBook-Pro:gdata-2-1.0.13 user$ ./setup.py install 
    /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/ 
    distutils/dist.py:266: UserWarning: Unknown distribution option: 
    'install_requires' 
      warnings.warn(msg) 
    running install 
    running build 
    running build_py 
    creating build 
    creating build/lib 
    creating build/lib/atom 
    copying src/atom/__init__.py -> build/lib/atom 
    copying src/atom/auth.py -> build/lib/atom 
    copying src/atom/client.py -> build/lib/atom 
    copying src/atom/core.py -> build/lib/atom 
    copying src/atom/data.py -> build/lib/atom 
    copying src/atom/http.py -> build/lib/atom 
    copying src/atom/http_core.py -> build/lib/atom 
    copying src/atom/http_interface.py -> build/lib/atom 
    copying src/atom/mock_http.py -> build/lib/atom 
    copying src/atom/mock_http_core.py -> build/lib/atom 
    copying src/atom/mock_service.py -> build/lib/atom 
    copying src/atom/service.py -> build/lib/atom 
    copying src/atom/token_store.py -> build/lib/atom 
    copying src/atom/url.py -> build/lib/atom 
    creating build/lib/gdata 
    copying src/gdata/__init__.py -> build/lib/gdata 
    copying src/gdata/apps_property.py -> build/lib/gdata 
    copying src/gdata/auth.py -> build/lib/gdata 
    copying src/gdata/client.py -> build/lib/gdata 
    copying src/gdata/core.py -> build/lib/gdata 
    copying src/gdata/data.py -> build/lib/gdata 
    copying src/gdata/gauth.py -> build/lib/gdata 
   --Various copying, migration, and creation printouts exactly the same to the above and below, asides from path, removed to save space--
    migration 
    copying src/gdata/apps/migration/service.py -> build/lib/gdata/apps/ 
    migration 
    creating build/lib/gdata/apps/organization 
    copying src/gdata/apps/organization/__init__.py -> build/lib/gdata/ 
    apps/organization 
    copying src/gdata/apps/organization/service.py -> build/lib/gdata/apps/ 
    organization 
    creating build/lib/gdata/base 
    copying src/gdata/base/__init__.py -> build/lib/gdata/base 
    copying src/gdata/base/service.py -> build/lib/gdata/base 
    creating build/lib/gdata/blogger 
    copying src/gdata/blogger/__init__.py -> build/lib/gdata/blogger 
    copying src/gdata/blogger/client.py -> build/lib/gdata/blogger 
    copying src/gdata/blogger/data.py -> build/lib/gdata/blogger 
    copying src/gdata/blogger/service.py -> build/lib/gdata/blogger 
    creating build/lib/gdata/books 
    copying src/gdata/books/__init__.py -> build/lib/gdata/books 
    copying src/gdata/books/data.py -> build/lib/gdata/books 
    copying src/gdata/books/service.py -> build/lib/gdata/books 
    creating build/lib/gdata/calendar 
    copying src/gdata/calendar/__init__.py -> build/lib/gdata/calendar 
    copying src/gdata/calendar/data.py -> build/lib/gdata/calendar 
    copying src/gdata/calendar/service.py -> build/lib/gdata/calendar 
    creating build/lib/gdata/calendar_resource 
    copying src/gdata/calendar_resource/__init__.py -> build/lib/gdata/ 
    calendar_resource 
    copying src/gdata/calendar_resource/client.py -> build/lib/gdata/ 
    calendar_resource 
    copying src/gdata/calendar_resource/data.py -> build/lib/gdata/ 
    calendar_resource 
    creating build/lib/gdata/codesearch 
    copying src/gdata/codesearch/__init__.py -> build/lib/gdata/codesearch 
    copying src/gdata/codesearch/service.py -> build/lib/gdata/codesearch 
    creating build/lib/gdata/contacts 
    copying src/gdata/contacts/__init__.py -> build/lib/gdata/contacts 
    copying src/gdata/contacts/client.py -> build/lib/gdata/contacts 
    copying src/gdata/contacts/data.py -> build/lib/gdata/contacts 
    copying src/gdata/contacts/service.py -> build/lib/gdata/contacts 
    creating build/lib/gdata/docs 
    copying src/gdata/docs/__init__.py -> build/lib/gdata/docs 
    copying src/gdata/docs/client.py -> build/lib/gdata/docs 
    copying src/gdata/docs/data.py -> build/lib/gdata/docs 
    copying src/gdata/docs/service.py -> build/lib/gdata/docs 
    creating build/lib/gdata/dublincore 
    copying src/gdata/dublincore/__init__.py -> build/lib/gdata/dublincore 
    copying src/gdata/dublincore/data.py -> build/lib/gdata/dublincore 
    creating build/lib/gdata/exif 
    copying src/gdata/exif/__init__.py -> build/lib/gdata/exif 
    creating build/lib/gdata/finance 
    copying src/gdata/finance/__init__.py -> build/lib/gdata/finance 
    copying src/gdata/finance/data.py -> build/lib/gdata/finance 
    copying src/gdata/finance/service.py -> build/lib/gdata/finance 
    creating build/lib/gdata/geo 
    copying src/gdata/geo/__init__.py -> build/lib/gdata/geo 
    copying src/gdata/geo/data.py -> build/lib/gdata/geo 
    creating build/lib/gdata/health 
    copying src/gdata/health/__init__.py -> build/lib/gdata/health 
    copying src/gdata/health/service.py -> build/lib/gdata/health 
    creating build/lib/gdata/maps 
    copying src/gdata/maps/__init__.py -> build/lib/gdata/maps 
    copying src/gdata/maps/client.py -> build/lib/gdata/maps 
    copying src/gdata/maps/data.py -> build/lib/gdata/maps 
    creating build/lib/gdata/media 
    copying src/gdata/media/__init__.py -> build/lib/gdata/media 
    copying src/gdata/media/data.py -> build/lib/gdata/media 
    creating build/lib/gdata/notebook 
    copying src/gdata/notebook/__init__.py -> build/lib/gdata/notebook 
    copying src/gdata/notebook/data.py -> build/lib/gdata/notebook 
    creating build/lib/gdata/oauth 
    copying src/gdata/oauth/__init__.py -> build/lib/gdata/oauth 
    copying src/gdata/oauth/rsa.py -> build/lib/gdata/oauth 
    creating build/lib/gdata/opensearch 
    copying src/gdata/opensearch/__init__.py -> build/lib/gdata/opensearch 
    copying src/gdata/opensearch/data.py -> build/lib/gdata/opensearch 
    creating build/lib/gdata/photos 
    copying src/gdata/photos/__init__.py -> build/lib/gdata/photos 
    copying src/gdata/photos/service.py -> build/lib/gdata/photos 
    creating build/lib/gdata/projecthosting 
    copying src/gdata/projecthosting/__init__.py -> build/lib/gdata/ 
    projecthosting 
    copying src/gdata/projecthosting/client.py -> build/lib/gdata/ 
    projecthosting 
    copying src/gdata/projecthosting/data.py -> build/lib/gdata/ 
    projecthosting 
    creating build/lib/gdata/sites 
    copying src/gdata/sites/__init__.py -> build/lib/gdata/sites 
    copying src/gdata/sites/client.py -> build/lib/gdata/sites 
    copying src/gdata/sites/data.py -> build/lib/gdata/sites 
    creating build/lib/gdata/spreadsheet 
    copying src/gdata/spreadsheet/__init__.py -> build/lib/gdata/ 
    spreadsheet 
    copying src/gdata/spreadsheet/service.py -> build/lib/gdata/ 
    spreadsheet 
    copying src/gdata/spreadsheet/text_db.py -> build/lib/gdata/ 
    spreadsheet 
    creating build/lib/gdata/spreadsheets 
    copying src/gdata/spreadsheets/__init__.py -> build/lib/gdata/ 
    spreadsheets 
    copying src/gdata/spreadsheets/client.py -> build/lib/gdata/ 
    spreadsheets 
    copying src/gdata/spreadsheets/data.py -> build/lib/gdata/spreadsheets 
    creating build/lib/gdata/tlslite 
    copying src/gdata/tlslite/__init__.py -> build/lib/gdata/tlslite 
    copying src/gdata/tlslite/api.py -> build/lib/gdata/tlslite 
    copying src/gdata/tlslite/BaseDB.py -> build/lib/gdata/tlslite 
    copying src/gdata/tlslite/Checker.py -> build/lib/gdata/tlslite 
    copying src/gdata/tlslite/constants.py -> build/lib/gdata/tlslite 
    copying src/gdata/tlslite/errors.py -> build/lib/gdata/tlslite 
    copying src/gdata/tlslite/FileObject.py -> build/lib/gdata/tlslite 
    copying src/gdata/tlslite/HandshakeSettings.py -> build/lib/gdata/ 
    tlslite 
    copying src/gdata/tlslite/mathtls.py -> build/lib/gdata/tlslite 
    copying src/gdata/tlslite/messages.py -> build/lib/gdata/tlslite 
    copying src/gdata/tlslite/Session.py -> build/lib/gdata/tlslite 
    copying src/gdata/tlslite/SessionCache.py -> build/lib/gdata/tlslite 
    copying src/gdata/tlslite/SharedKeyDB.py -> build/lib/gdata/tlslite 
    copying src/gdata/tlslite/TLSConnection.py -> build/lib/gdata/tlslite 
    copying src/gdata/tlslite/TLSRecordLayer.py -> build/lib/gdata/tlslite 
    copying src/gdata/tlslite/VerifierDB.py -> build/lib/gdata/tlslite 
    copying src/gdata/tlslite/X509.py -> build/lib/gdata/tlslite 
    copying src/gdata/tlslite/X509CertChain.py -> build/lib/gdata/tlslite 
    creating build/lib/gdata/tlslite/integration 
    copying src/gdata/tlslite/integration/__init__.py -> build/lib/gdata/ 
    tlslite/integration 
    copying src/gdata/tlslite/integration/AsyncStateMachine.py -> build/ 
    lib/gdata/tlslite/integration 
    copying src/gdata/tlslite/integration/ClientHelper.py -> build/lib/ 
    gdata/tlslite/integration 
    copying src/gdata/tlslite/integration/HTTPTLSConnection.py -> build/ 
    lib/gdata/tlslite/integration 
    copying src/gdata/tlslite/integration/IMAP4_TLS.py -> build/lib/gdata/ 
    tlslite/integration 
    copying src/gdata/tlslite/integration/IntegrationHelper.py -> build/ 
    lib/gdata/tlslite/integration 
    copying src/gdata/tlslite/integration/POP3_TLS.py -> build/lib/gdata/ 
    tlslite/integration 
    copying src/gdata/tlslite/integration/SMTP_TLS.py -> build/lib/gdata/ 
    tlslite/integration 
    copying src/gdata/tlslite/integration/TLSAsyncDispatcherMixIn.py -> 
    build/lib/gdata/tlslite/integration 
    copying src/gdata/tlslite/integration/TLSSocketServerMixIn.py -> build/ 
    lib/gdata/tlslite/integration 
    copying src/gdata/tlslite/integration/TLSTwistedProtocolWrapper.py -> 
    build/lib/gdata/tlslite/integration 
    copying src/gdata/tlslite/integration/XMLRPCTransport.py -> build/lib/ 
    gdata/tlslite/integration 
    creating build/lib/gdata/tlslite/utils 
    copying src/gdata/tlslite/utils/__init__.py -> build/lib/gdata/tlslite/ 
    utils 
    copying src/gdata/tlslite/utils/AES.py -> build/lib/gdata/tlslite/ 
    utils 
    copying src/gdata/tlslite/utils/ASN1Parser.py -> build/lib/gdata/ 
    tlslite/utils 
    copying src/gdata/tlslite/utils/cipherfactory.py -> build/lib/gdata/ 
    tlslite/utils 
    copying src/gdata/tlslite/utils/codec.py -> build/lib/gdata/tlslite/ 
    utils 
    copying src/gdata/tlslite/utils/compat.py -> build/lib/gdata/tlslite/ 
    utils 
    copying src/gdata/tlslite/utils/Cryptlib_AES.py -> build/lib/gdata/ 
    tlslite/utils 
    copying src/gdata/tlslite/utils/Cryptlib_RC4.py -> build/lib/gdata/ 
    tlslite/utils 
    copying src/gdata/tlslite/utils/Cryptlib_TripleDES.py -> build/lib/ 
    gdata/tlslite/utils 
    copying src/gdata/tlslite/utils/cryptomath.py -> build/lib/gdata/ 
    tlslite/utils 
    copying src/gdata/tlslite/utils/dateFuncs.py -> build/lib/gdata/ 
    tlslite/utils 
    copying src/gdata/tlslite/utils/hmac.py -> build/lib/gdata/tlslite/ 
    utils 
    copying src/gdata/tlslite/utils/jython_compat.py -> build/lib/gdata/ 
    tlslite/utils 
    copying src/gdata/tlslite/utils/keyfactory.py -> build/lib/gdata/ 
    tlslite/utils 
    copying src/gdata/tlslite/utils/OpenSSL_AES.py -> build/lib/gdata/ 
    tlslite/utils 
    copying src/gdata/tlslite/utils/OpenSSL_RC4.py -> build/lib/gdata/ 
    tlslite/utils 
    copying src/gdata/tlslite/utils/OpenSSL_RSAKey.py -> build/lib/gdata/ 
    tlslite/utils 
    copying src/gdata/tlslite/utils/OpenSSL_TripleDES.py -> build/lib/ 
    gdata/tlslite/utils 
    copying src/gdata/tlslite/utils/PyCrypto_AES.py -> build/lib/gdata/ 
    tlslite/utils 
    copying src/gdata/tlslite/utils/PyCrypto_RC4.py -> build/lib/gdata/ 
    tlslite/utils 
    copying src/gdata/tlslite/utils/PyCrypto_RSAKey.py -> build/lib/gdata/ 
    tlslite/utils 
    copying src/gdata/tlslite/utils/PyCrypto_TripleDES.py -> build/lib/ 
    gdata/tlslite/utils 
    copying src/gdata/tlslite/utils/Python_AES.py -> build/lib/gdata/ 
    tlslite/utils 
    copying src/gdata/tlslite/utils/Python_RC4.py -> build/lib/gdata/ 
    tlslite/utils 
    copying src/gdata/tlslite/utils/Python_RSAKey.py -> build/lib/gdata/ 
    tlslite/utils 
    copying src/gdata/tlslite/utils/RC4.py -> build/lib/gdata/tlslite/ 
    utils 
    copying src/gdata/tlslite/utils/rijndael.py -> build/lib/gdata/tlslite/ 
    utils 
    copying src/gdata/tlslite/utils/RSAKey.py -> build/lib/gdata/tlslite/ 
    utils 
    copying src/gdata/tlslite/utils/TripleDES.py -> build/lib/gdata/ 
    tlslite/utils 
    copying src/gdata/tlslite/utils/xmltools.py -> build/lib/gdata/tlslite/ 
    utils 
    creating build/lib/gdata/webmastertools 
    copying src/gdata/webmastertools/__init__.py -> build/lib/gdata/ 
    webmastertools 
    copying src/gdata/webmastertools/data.py -> build/lib/gdata/ 
    webmastertools 
    copying src/gdata/webmastertools/service.py -> build/lib/gdata/ 
    webmastertools 
    creating build/lib/gdata/youtube 
    copying src/gdata/youtube/__init__.py -> build/lib/gdata/youtube 
    copying src/gdata/youtube/client.py -> build/lib/gdata/youtube 
    copying src/gdata/youtube/data.py -> build/lib/gdata/youtube 
    copying src/gdata/youtube/service.py -> build/lib/gdata/youtube 
    running install_lib 
    running install_egg_info 
    Removing /Library/Python/2.6/site-packages/gdata-2.0.13-py2.6.egg-info 
    Writing /Library/Python/2.6/site-packages/gdata-2.0.13-py2.6.egg-info 
    Users-MacBook-Pro:gdata-2-1.0.13 user$ 
    I then ran the first test mentioned: 
    Last login: Sat Jan  1 11:38:03 on ttys000 
    Users-MacBook-Pro:~ user$ ./tests/run_data_tests.py 
    -bash: ./tests/run_data_tests.py: No such file or directory 
    Users-MacBook-Pro:~ user$ cd /Users/user/Downloads/gdata-2-1.0.13 
    Users-MacBook-Pro:gdata-2-1.0.13 user$ ./tests/run_data_tests.py 
    Running all tests in module gdata_test 
    ..................... 
    ---------------------------------------------------------------------- 
    Ran 21 tests in 0.085s 
    OK 
    Running all tests in module atom_test 
    ............................................... 
    ---------------------------------------------------------------------- 
    Ran 47 tests in 0.019s 
    OK 
    Running all tests in module atom_tests.url_test 
    .... 
    ---------------------------------------------------------------------- 
    Ran 4 tests in 0.001s 
    OK 
    Running all tests in module atom_tests.http_interface_test 
    . 
    ---------------------------------------------------------------------- 
    Ran 1 test in 0.000s 
    OK 
    Running all tests in module atom_tests.mock_http_test 
    ... 
    ---------------------------------------------------------------------- 
    Ran 3 tests in 0.729s 
    OK 
    Running all tests in module atom_tests.core_test 
    ................ 
    ---------------------------------------------------------------------- 
    Ran 16 tests in 0.008s 
    OK 
    Running all tests in module atom_tests.token_store_test 
    ... 
    ---------------------------------------------------------------------- 
    Ran 3 tests in 0.001s 
    OK 
    Running all tests in module gdata_tests.client_test 
    ............... 
    ---------------------------------------------------------------------- 
    Ran 15 tests in 0.006s 
    OK 
    Running all tests in module gdata_tests.apps_test 
    ............................................... 
    ---------------------------------------------------------------------- 
    Ran 47 tests in 0.028s 
    OK 
    Running all tests in module gdata_tests.apps.emailsettings.data_test 
    ................................. 
    ---------------------------------------------------------------------- 
    Ran 33 tests in 0.009s 
    OK 
    Running all tests in module gdata_tests.auth_test 
    ............................. 
    ---------------------------------------------------------------------- 
    Ran 29 tests in 0.109s 
    OK 
    Running all tests in module gdata_tests.base_test 
    ..................... 
    ---------------------------------------------------------------------- 
    Ran 21 tests in 0.028s 
    OK 
    Running all tests in module gdata_tests.books_test 
    ... 
    ---------------------------------------------------------------------- 
    Ran 3 tests in 0.001s 
    OK 
    Running all tests in module gdata_tests.calendar_test 
    ............................................................ 
    ---------------------------------------------------------------------- 
    Ran 60 tests in 0.361s 
    OK 
    Running all tests in module gdata_tests.docs_test 
    ....F... 
    ====================================================================== 
    FAIL: testToAndFromStringWithData 
    (gdata_tests.docs_test.DocumentListEntryTest) 
    ---------------------------------------------------------------------- 
    Traceback (most recent call last): 
      File "/Users/user/Downloads/gdata-2-1.0.13/tests/gdata_tests/ 
    docs_test.py", line 39, in testToAndFromStringWithData 
        'spreadsheet%3Asupercalifragilisticexpealidocious') 
    AssertionError: 'https://docs.google.com/feeds/documents/private/full/ 
    spreadsheet%3Asupercalifragilisticexpealidocious' != 'http:// 
    docs.google.com/feeds/documents/private/full/spreadsheet 
    %3Asupercalifragilisticexpealidocious' 
    ---------------------------------------------------------------------- 
    Ran 8 tests in 0.012s 
    FAILED (failures=1) 
    Running all tests in module gdata_tests.health_test 
    ............... 
    ---------------------------------------------------------------------- 
    Ran 15 tests in 0.195s 
    OK 
    Running all tests in module gdata_tests.spreadsheet_test 
    ........... 
    ---------------------------------------------------------------------- 
    Ran 11 tests in 0.012s 
    OK 
    Running all tests in module gdata_tests.photos_test 
    ... 
    ---------------------------------------------------------------------- 
    Ran 3 tests in 0.007s 
    OK 
    Running all tests in module gdata_tests.codesearch_test 
    . 
    ---------------------------------------------------------------------- 
    Ran 1 test in 0.004s 
    OK 
    Running all tests in module gdata_tests.contacts_test 
    ....... 
    ---------------------------------------------------------------------- 
    Ran 7 tests in 0.009s 
    OK 
    Running all tests in module gdata_tests.youtube_test 
    ................ 
    ---------------------------------------------------------------------- 
    Ran 16 tests in 0.019s 
    OK 
    Running all tests in module gdata_tests.blogger_test 
    ...... 
    ---------------------------------------------------------------------- 
    Ran 6 tests in 0.002s 
    OK 
    Running all tests in module gdata_tests.webmastertools_test 
    ............................. 
    ---------------------------------------------------------------------- 
    Ran 29 tests in 0.016s 
    OK 
    Running all tests in module gdata_tests.calendar_resource.data_test 
    .. 
    ---------------------------------------------------------------------- 
    Ran 2 tests in 0.003s 
    OK 
    Running all tests in module gdata_tests.oauth.data_test 
    ............../Library/Python/2.6/site-packages/gdata/oauth/ 
    __init__.py:16: DeprecationWarning: BaseException.message has been 
    deprecated as of Python 2.6 
      self.message = message 
    ......................... 
    ---------------------------------------------------------------------- 
    Ran 39 tests in 0.038s 
    OK 
    Users-MacBook-Pro:gdata-2-1.0.13 user$ 
    Worried by the FAILURE up there, I ran the next test mentioned: 
    Last login: Sat Jan  1 11:42:38 on ttys000 
    Users-MacBook-Pro:~ user$ cd /Users/user/Downloads/gdata-2-1.0.13 
    Users-MacBook-Pro:gdata-2-1.0.13 user$ ./samples/docs/docs_example.py 
    NOTE: Please run these tests only with a test account. 
    Please enter your username: User 
    Password: 
    Document List Sample 
    1) List your documents. 
    2) Search your documents. 
    3) Upload a document. 
    4) Download a document. 
    5) List a document's permissions. 
    6) Add/change a document's permissions. 
    7) Exit. 
    > 1 

    Retrieve (all/document/folder/presentation/spreadsheet/pdf): 
    Enter a category: spreadsheets 
    No entries in feed. 
    TITLE              TYPE         RESOURCE ID 
    Document List Sample 
    1) List your documents. 
    2) Search your documents. 
    3) Upload a document. 
    4) Download a document. 
    5) List a document's permissions. 
    6) Add/change a document's permissions. 
    7) Exit. 
    > 1 

    Retrieve (all/document/folder/presentation/spreadsheet/pdf): 
    Enter a category: all 
    TITLE              TYPE         RESOURCE ID 
    Whirld             spreadsheet  spreadsheet:--removed ID-- 
    Whirld Stats       spreadsheet  spreadsheet:--removed ID-- 
    Document List Sample 
    1) List your documents. 
    2) Search your documents. 
    3) Upload a document. 
    4) Download a document. 
    5) List a document's permissions. 
    6) Add/change a document's permissions. 
    7) Exit.

一切似乎都很好,除了神秘的失败,所以我尝试运行一些代码,看看我是否可以初始化一个 DocsService:

import cgi 
from google.appengine.ext import webapp 
from google.appengine.ext.webapp.util import run_wsgi_app 
import gdata.docs 
import gdata.docs.service 
class MainPage(webapp.RequestHandler): 
    def post(self): 
        self.Test = self.request.get('Test') 
        self.respond(bool(1)) 
    def get(self): 
        self.respond(bool(0)) 
    def respond(self,isPost): 
        if isPost: 
                self.response.out.write("""Greetings. The value of Test is""" + 
self.Test) 
        else: 
                self.response.out.write("""ERROR -- Post data not given!""") 
        #gd_client = gdata.docs.service.DocsService(source='[removed]') 
        self.response.out.write("""Hahahahaha""") 
application = webapp.WSGIApplication([  ('/', MainPage) ], debug=True) 
#Run the basic code: 
def main(): 
    run_wsgi_app(application) 
if __name__ == "__main__": 
    main() 

但是,当从谷歌应用引擎启动该代码,然后在 safari 中查看它时,我很高兴:

Traceback (most recent call last): 
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/ 
GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ 
google/appengine/tools/dev_appserver.py", line 3245, in _HandleRequest 
    self._Dispatch(dispatcher, self.rfile, outfile, env_dict) 
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/ 
GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ 
google/appengine/tools/dev_appserver.py", line 3186, in _Dispatch 
    base_env_dict=env_dict) 
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/ 
GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ 
google/appengine/tools/dev_appserver.py", line 531, in Dispatch 
    base_env_dict=base_env_dict) 
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/ 
GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ 
google/appengine/tools/dev_appserver.py", line 2410, in Dispatch 
    self._module_dict) 
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/ 
GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ 
google/appengine/tools/dev_appserver.py", line 2320, in ExecuteCGI 
    reset_modules = exec_script(handler_path, cgi_path, hook) 
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/ 
GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ 
google/appengine/tools/dev_appserver.py", line 2216, in 
ExecuteOrImportScript 
    exec module_code in script_module.__dict__ 
  File "/Users/user/Documents/Web Projects/Python/HelloWorld/ 
HelloWorld.py", line 4, in <module> 
    import gdata.docs 
ImportError: No module named gdata.docs

我不确定这里出了什么问题,但任何帮助将不胜感激。

4

1 回答 1

3
sudo mv /usr/local/lib/python2.6/dist-packages/* /usr/lib/python2.6/dist-packages
于 2011-01-22T18:44:10.223 回答