2012-01-09 13 views
14

z linii poleceń nie mogę importować AppEngine, to może być coś z mojej ścieżce Pythona:Nie można importować moduły, które są tam

$ 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 
>>> 

Nie chcę duplikaty instalacje, chcę to punkcie Interpretator Pythona do miejsca, w którym znajduje się brakujący moduł. Jak sprawić, aby interpretator znalazł moduły silnika aplikacji z wiersza polecenia? W aplikacji ten import działa.

Odpowiedz

14

Dołączanie:

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

do PYTHONPATH zmiennej środowiskowej powinno wystarczyć (SDK lokalizacji mogą się zmieniać).

+0

czasami kolejność Państwo dodać do PYTHONPATH może coś zmienić, ponieważ niektóre biblioteki mogą kolidować w niewłaściwej kolejności. Sprawdź również, czy twoje moduły są zainstalowane dla tej samej wersji Pythona. Możliwe, że zainstalowałeś je dla Pythona 2.6 i zapisałeś je w Pythonie 2.7. –

+4

Musiałem zmienić yaml na yaml-3.10 jako odpowiedź @ Clyde'a wspomnianą – dghubble

8

Dla appengine 1.9.6 google stworzył nowy katalog "yaml-3.10", który zawiera moduł yaml. Dodałem "[katalog instalacyjny appengine]/google_appengine/lib/yaml-3.10" do PYTHONPATH w moim pliku .bashrc i to rozwiązało ten problem. BTW: Używam Ubuntu 14.04 LTS.

6

yaml nie jest zainstalowany w bieżącej konfiguracji. Pakiet yaml jest zawarty w google_appengine w folderze lib. skrypt setup.py w folderze doda pakiet yaml do bieżącej pytona

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

Ta odpowiedź mogłaby zostać poprawiona z wyjaśnieniem, dlaczego osoba pytająca ma problem i jak działanie tych poleceń naprawi ich problem. – ArtOfWarfare

+0

czy to lepiej? – semisided1

Powiązane problemy