2012-01-09 13 views
14

、これは私のPythonパスで何かある場合がございますモジュールをインポートすることはできません:私はAppEngineのをインポートすることはできませんコマンドラインから

$ python 
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) 
[GCC 4.5.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from google.appengine.ext import db 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "google/appengine/ext/db/__init__.py", line 98, in <module> 
    from google.appengine.api import datastore 
    File "google/appengine/api/datastore.py", line 62, in <module> 
    from google.appengine.datastore import datastore_query 
    File "google/appengine/datastore/datastore_query.py", line 64, in <module> 
    from google.appengine.datastore import datastore_index 
    File "google/appengine/datastore/datastore_index.py", line 60, in <module> 
    from google.appengine.api import validation 
    File "google/appengine/api/validation.py", line 51, in <module> 
    import yaml 
ImportError: No module named yaml 
>>> 

を私が指すようにしたい、重複インストールをしたくありませんモジュールがどこにあるのかをPythonインタプリタで調べます。インタプリタがコマンドプロンプトからアプリエンジンモジュールを見つけるようにするにはどうすればよいですか?アプリケーションでは、これらのインポートが機能しています。

答えて

14

添付:

/usr/local/google_appengine/:/usr/local/google_appengine/lib/:/usr/local/google_appengine/lib/yaml/ 

トリックを行う必要があり、あなたのPYTHONPATH環境変数に(あなたのSDKの場所が異なる場合があります)。

+0

にYAMLのパッケージを追加します。同じバージョンのPython用にモジュールがインストールされていることも確認してください。あなたはPython 2.6のためにそれらをインストールして、Python 2.7でそれらを持っているかもしれません。 –

+4

yamlをyaml-3.10に変更する必要がありました@クライドの答えは – dghubble

8

appengine 1.9.6の場合、Googleではyamlモジュールを含む新しいディレクトリ "yaml-3.10"を作成しました。私は.bashrcファイルのPYTHONPATHに "[appengine install directory] ​​/google_appengine/lib/yaml-3.10"を追加してこの問題を解決しました。ところで、私はUbuntu 14.04 LTSを使用しています。

6

yamlが現在の設定にインストールされていません。 yamlパッケージは、libフォルダにgoogle_appengineに含まれています。フォルダ内のsetup.pyスクリプトは、いくつかのライブラリが間違った順序で競合することができますよう時々、あなたのPYTHONPATHに追加する順序が違いを生むことがあり、現在のpython

cd google_appengine/lib/yaml 
sudo python setup.py install 
+0

となりました。この回答は、質問者が問題を抱えている理由と、これらのコマンドを実行することによって問題がどのように修正されるかに関するいくつかの説明で改善することができます。 – ArtOfWarfare

+0

はそれが良いですか? – semisided1

関連する問題