0

J'essaie de déployer une application flask sur google cloud. En dépit de suivre leurs instructions, chaque fois que je démarre le serveur dev, il ne peut pas trouver la bibliothèque vendor.add('lib'). Comment régler ceci?Google App Engine ne trouve pas lib depuis appengine_config

sudo /google-cloud-sdk/bin/dev_appserver.py app.yaml > file 
INFO  2017-10-10 20:20:04,276 devappserver2.py:115] Skipping SDK update check. 
INFO  2017-10-10 20:20:04,338 api_server.py:299] Starting API server at: http://localhost:53496 
WARNING 2017-10-10 20:20:04,338 dispatcher.py:285] Your python27 micro version is below 2.7.12, our current production version. 
INFO  2017-10-10 20:20:04,343 dispatcher.py:224] Starting module "default" running at: http://localhost:8080 
INFO  2017-10-10 20:20:04,345 admin_server.py:116] Starting admin server at: http://localhost:8000 
/deploy_10oct/lib 
ERROR 2017-10-10 20:20:11,913 wsgi.py:263] 
Traceback (most recent call last): 
    File "/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle 
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) 
    File "/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler 
    handler, path, err = LoadObject(self._handler) 
    File "/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject 
    obj = __import__(path[0]) 
    File "deploy_10oct/main.py", line 11, in <module> 
    import h5py 
ImportError: No module named h5py 
INFO  2017-10-10 20:20:11,919 module.py:821] default: "GET/HTTP/1.1" 500 - 

structure Répertoire

ls 
app.yaml  
env   
lame.pyc   
main.pyc   
templates 
appengine_config.py   
lib   
requirements.txt  
uploads 
appengine_config.pyc  
lame.py   
main.py   
static  
+1

Pourriez-vous partager votre 'appengine_config.py'? –

Répondre

1

Vous devez créer un répertoire lib dans votre application et installer vos dépendances dans ce répertoire (pas sur l'installation de python de votre système). De Installing a third-party library:

  1. Créez un répertoire pour stocker vos bibliothèques tierces, telles que lib/.

    mkdir lib 
    
  2. Utilisez pip (version 6 ou version ultérieure) avec le drapeau -t <directory> pour copier les bibliothèques dans le dossier que vous avez créé à l'étape précédente . Par exemple:

    pip install -t lib/ <library_name> 
    
+0

J'ai fait exactement cela. J'ai écrit un petit programme qui appelle simplement hello world et y a importé h5py et il lance la même erreur. L'erreur est sur la ligne wsgi 263. Comment est-ce que je débogue cela maintenant? – Hooli

+0

Applications autonomes! = Applications GAE. Les applications autonomes utilisent les bibliothèques de votre chemin python local, les applications GAE utilisent les bibliothèques qu'elles contiennent. Vous devriez lancer votre application GAE à l'intérieur du devserver. Vous pouvez également essayer d'apprendre à votre programme autonome à utiliser les libs de l'application GAE à la place, mais à mon humble avis c'est juste une perte de temps. –