2017-10-19 34 views
0

J'ai récemment courir dans une erreur d'importation avec psutils dans le types.py appelé de google.cloud.pubsub_v1 sur un projet standard GAE intérieur PyCharm. Je me suis amusé pendant un jour à essayer de trouver autour de lui, mais pas d'aller. les importations de psutil en terme de python du terminal et de la console et d'un projet de python de vanille, mais pas d'un projet GAE. Pour doubler sur ce que j'ai fait un test de base des deux comme on le voit ci-dessous: Les deux en utilisant la même virtualenv ...Erreur psutil importation dans PyCharm Google App Engine projet


standard Vanilla Python projet:

main.py contient

import psutil 

def x(): 
    print "hello world" 

if __name__ == "__main__": 
    x() 

Google App Engine Project - main.py contient

import webapp2 
import psutil 

class MainHandler(webapp2.RequestHandler): 
    def get(self): 
     self.response.write('Hello world!') 

app = webapp2.WSGIApplication([ 
    ('/', MainHandler) 
], debug=True) 

Le l'importation dans le projet de python de vanille fonctionne très bien, mais l'importation dans l'application GAE retourne le retraçage:

Traceback (most recent call last): 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle 
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler 
    handler, path, err = LoadObject(self._handler) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject 
    obj = __import__(path[0]) 
    File "/Users/chez 1/google-app-engine-projects/untitled/main.py", line 18, in <module> 
    import psutil 
ImportError: No module named psutil 

Quelqu'un at-il eu des problèmes similaires et a trouvé une solution?

Répondre

0

que vous rencontrez probablement le package psutil installé sur votre système local (travaillant ainsi dans le terminal/console), mais pas vendored dans votre application (par exemple installé dans lib de votre application dir) comme nécessaire pour les applications env standards (le SDK émule le vrai GAE, pour lequel tout ce qui est installé dans votre installation locale de python ne veut rien dire). De Installing a third-party library:

  1. Create a directory to store your third-party libraries, such as lib/ .

    mkdir lib 
    
  2. Use pip (version 6 or later) with the -t <directory> flag to copy the libraries into the folder you created in the previous step. For example:

    pip install -t lib/ <library_name> 
    

Alors que vendeur dans votre application le package psutil.

+0

J'ai essayé et je reçois l'erreur suivante: ImportError: Aucun module nommé psutil._psutil_osx – Chez

+0

Hm, ce paquet est susceptible de violer les restrictions sandbox GAE, il * pourrait * avoir quelque chose à voir avec ce qui suit: https://cloud.google.com/appengine/docs/standard/python/runtime#Python_The_sandbox –

+0

Eh bien, si elle ne pourquoi l'utiliser dans un paquet GAE? – Chez