1

Python 用の Google App Engine SDK (google_appengine_1.6.5.zip) をダウンロードし、google-api-python-client ( appengine ) からサンプルを起動しようとしました:

$ tree
.
|-- app.yaml
|-- client_secrets.json
|-- grant.html
|-- index.yaml
|-- main.py
`-- welcome.html

開発サーバーを起動します::./dev_appserver.py /home/yoyo/dev/projets/yoyocontacts/ --backends --clear_datastore --high_replication

しかし、ブラウザでアプリケーションを起動すると、次のエラーが表示されます: ImportError: No module named httplib2.

私のプラットフォームは、Python 2.6.5 を使用した Ubuntu 10.04.4 LTS であり、Python cli を使用した httplib2 のインポートは正常に機能します。そして google-appengine ディレクトリに httplib2 があります:

$ locate httplib2|grep appengine

/home/yoyo/dev/outils/google_appengine/lib/httplib2
/home/yoyo/dev/outils/google_appengine/lib/httplib2/httplib2
/home/yoyo/dev/outils/google_appengine/lib/httplib2/httplib2/LICENSE
/home/yoyo/dev/outils/google_appengine/lib/httplib2/httplib2/OWNERS
/home/yoyo/dev/outils/google_appengine/lib/httplib2/httplib2/__init__.py
... 

このインポートの問題を適切に解決するにはどうすればよいですか?

アプリケーション ディレクトリに httplib2 を追加できることはわかっていますが、エレガントではありません。

$tree
...
|-- httplib2
|   |-- cacerts.txt
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- iri2uri.py
|   |-- iri2uri.pyc
|   |-- socks.py
|   |-- socks.pyc 

私は最終的に正しいシンボリックリンクを追加しました:(@Thanasisに感謝)

$ll
total 36K
lrwxrwxrwx 1 yoyo   77 2012-05-06 16:24 apiclient -> /home/yoyo/dev/outils/google_appengine/lib/google-api-python-client/apiclient/
-rw-r--r-- 1 yoyo  267 2012-05-07 12:28 app.yaml
-rw-r--r-- 1 yoyo  358 2012-05-06 15:20 client_secrets.json
lrwxrwxrwx 1 yoyo   60 2012-05-07 12:12 gflags -> /usr/lib/python2.5/site-packages/python_gflags-2.0-py2.5.egg
-rw-r--r-- 1 yoyo  554 2012-03-02 20:00 grant.html
lrwxrwxrwx 1 yoyo   60 2012-05-06 16:20 httplib2 -> /home/yoyo/dev/outils/google_appengine/lib/httplib2/httplib2/
-rw-r--r-- 1 yoyo  471 2012-03-02 20:00 index.yaml
-rw-r--r-- 1 yoyo 3,4K 2012-05-07 11:45 main.py
lrwxrwxrwx 1 yoyo   56 2012-05-06 16:24 oauth2 -> /home/yoyo/dev/outils/google_appengine/lib/oauth2/oauth2/
lrwxrwxrwx 1 yoyo   80 2012-05-07 10:59 oauth2client -> /home/yoyo/dev/outils/google_appengine/lib/google-api-python-client/oauth2client/
-rwxr-xr-x 1 yoyo  163 2012-05-07 11:14 run*
drwxr-xr-x 3 yoyo 4,0K 2012-05-07 12:27 static/
-rwxr-xr-x 1 yoyo  115 2012-05-07 11:50 upload*
lrwxrwxrwx 1 yoyo   79 2012-05-06 16:24 uritemplate -> /home/yoyo/dev/outils/google_appengine/lib/google-api-python-client/uritemplate/
-rw-r--r-- 1 yoyo  102 2012-03-02 20:00 welcome.html

ここで、 gflags に関する新しい問題に対処する必要があります。

4

2 に答える 2

1

ここに解決策があります。

  • ソースツリーのどこかに一時ディレクトリを作成します。
  • ディレクトリに cd し、/usr/lib/python2.5/site-packages/python_gflags-2.0-py2.5.egg を解凍します。
  • *.py をソース ディレクトリにコピーします。
于 2012-05-12T21:03:41.587 に答える