1

Ich verwende pylint in Visual Studio Code, um eine Google App Engine (GAE) Cloud Endpoint API in Python zu entwickeln. Ich kann einen Flusenfehler nicht beheben. Ich weiß nicht, was den Fehler verursacht, aber bei einer Schätzung kann pylint die Bibliothek protorpc nicht finden?Visual Studio Code pylint: Importieren von 'protorpc' nicht möglich

enter image description here

Die empfohlene Update in Troubleshooting Linting ist Workspace-Einstellungen zu konfigurieren ausführbare vollständig qualifizierte Python zu zeigen. Ich habe das getan, aber der Flusenfehler bleibt bestehen.

enter image description here

protorpc selbst installiert:

~/google-cloud-sdk/platform/google_appengine/lib/protorpc-1.0/protorpc 

... und dies beinhaltet die remote.py Modul, die nicht importiert werden können:

__init__.py    generate_python.py  protojson.py   transport.py 
definition.py   google_imports.py  protourlencode.py  util.py 
descriptor.py   message_types.py  registry.py    webapp 
generate.py    messages.py    remote.py    wsgi 
generate_proto.py  protobuf.py    static 

ich diesen Pfad hinzugefügt haben, um $PYTHONPATH (zusammen mit der kitchen sink):

Die Anwendung läuft lokal und auch bei der Bereitstellung, so dass dies nur ein Flusenfehler scheint, aber es ist frustrierend, dass ich es nicht lösen kann.

Using third-party libraries Zustände:

Die Python-Laufzeit in der Standardumgebung enthält die Python Standard-Bibliothek, die App Engine-Bibliotheken und ein paar gebündelt Pakete von Drittanbietern.

Aus diesem Grund habe ich angenommen 'die App Engine-Bibliotheken' umfasst protorpc, aber ich bin nicht sicher. Darüber hinaus nur Adding the Cloud Endpoints Frameworks library to the sample API erfordert Google-Endpunkte in das lib Verzeichnis der App installiert werden:

pip install -t lib google-endpoints --extra-index-url=https://gapi-pypi.appspot.com/admin/nurpc-dev --ignore-installed 

Mein Punkt ist, ich glaube nicht, dass ich nicht etwas installiert haben, und ich glaube nicht, dass ich etwas fehlt bin im Lib-Verzeichnis meiner (Web-) App.

+0

Wenn Morad der Post war die Antwort ist es empfehlenswert, sie als die Lösung zu markieren, um besser die Gemeinschaft zu helfen. Wenn Sie das Problem gelöst haben, können Sie auch Ihre eigene Antwort posten und als Lösung markieren. Hinweis: Wenn Sie Drittanbieter-Libs in App Engine verwenden, müssen Sie sie [https://cloud.google.com/appengine/docs/standard/python/tools/using-libraries-python-27#installing_a_third-party_library] bereitstellen) um sie richtig zu installieren und zu benutzen. – Jordan

Antwort

2

ich beschlossen dies durch die Variable ProtoRPC Bibliothek in die $PYTHONPATH Umgebung hinzufügen. Insbesondere wies ich in die Bibliothek installiert in meinem App Engine-Verzeichnis:

export PYTHONPATH=$PYTHONPATH:/Users/jackwootton/google-cloud-sdk/platform/google_appengine/lib/protorpc-1.0 

Nach Zugabe dieser zu ~/.bash_profile, meine Maschine und Visual Studio-Code neu zu starten, gingen die Importfehler entfernt.

Der Vollständigkeit halber habe ich nicht ändern Sie alle Visual Studio Code-Einstellungen in Bezug auf Python.Vollständige ~/.bash_profile Datei:

export PATH=/Users/jackwootton/protoc3/bin:$PATH 

export PYTHONPATH=/Users/jackwootton/google-cloud-sdk/platform/google_appengine 

export PYTHONPATH=$PYTHONPATH:/Users/jackwootton/google-cloud-sdk/platform/google_appengine/lib/protorpc-1.0 

# The next line updates PATH for the Google Cloud SDK. 
if [ -f '/Users/jackwootton/google-cloud-sdk/path.bash.inc' ]; then source '/Users/jackwootton/google-cloud-sdk/path.bash.inc'; fi 

# The next line enables shell command completion for gcloud. 
if [ -f '/Users/jackwootton/google-cloud-sdk/completion.bash.inc' ]; then source '/Users/jackwootton/google-cloud-sdk/completion.bash.inc'; fi 
0

Öffnen Sie die Einstellungsdatei Ihres Visual Studio-Codes (settings.json) und fügen Sie den Bibliothekspfad zur "python.autoComplete.extraPaths"-Liste hinzu.

"python.autoComplete.extraPaths": [ 
    "~/google-cloud-sdk/platform/google_appengine/lib/webapp2-2.5.2", 
    "~/google-cloud-sdk/platform/google_appengine", 
    "~/google-cloud-sdk/lib", 
    "~/google-cloud-sdk/platform/google_appengine/lib/endpoints-1.0", 
    "~/google-cloud-sdk/platform/google_appengine/lib/protorpc-1.0" 
], 
+0

müssen Sie ~ mit Ihrem Programmdateien-Pfad ersetzen oder ist es in Ordnung? –