1. ホーム
  2. python

Visual Studio Code pylint: Unable to import 'protorpc'

2023-08-23 11:02:42

質問

私は ピリント Visual Studio コード を使用して、Google App Engine (GAE) を開発します。 PythonでクラウドエンドポイントAPI . lintエラーが発生し解決できません。エラーの原因は分かりませんが、推測では pylint を見つけることができません。 protorpc ライブラリが見つかりませんか?

での推奨される修正は Lintingのトラブルシューティング は、完全修飾されたPython実行ファイルを指すようにワークスペース設定を構成することです。私はこれを行いましたが、lintエラーは残っています。

protorpc には、それ自体がインストールされます。

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

...そして、これには remote.py モジュールが含まれており、インポートすることができません。

__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

このパスを $PYTHONPATH (と一緒に)。 キッチンシンク ):

export GOOGLE_CLOUD_SDK=~/google-cloud-sdk
export APPENGINE_PATH=$GOOGLE_CLOUD_SDK/platform/google_appengine

export PYTHONPATH=$PYTHONPATH:$GOOGLE_CLOUD_SDK
export PYTHONPATH=$PYTHONPATH:$GOOGLE_CLOUD_SDK/lib
export PYTHONPATH=$PYTHONPATH:$GOOGLE_CLOUD_SDK/lib/googlecloudsdk
export PYTHONPATH=$PYTHONPATH:$GOOGLE_CLOUD_SDK/lib/googlecloudsdk/api_lib
export PYTHONPATH=$PYTHONPATH:$GOOGLE_CLOUD_SDK/platform/google_appengine/lib
export PYTHONPATH=$PYTHONPATH:$GOOGLE_CLOUD_SDK/platform/google_appengine/lib/protorpc-1.0/protorpc

アプリケーションはローカルで実行され、デプロイされたときにも実行されるので、これは単なるlintエラーに見えますが、解決できないのがもどかしいです。

サードパーティライブラリの使用 の状態になります。

標準環境におけるPythonランタイムには、Python 標準環境におけるPythonランタイムには、Python標準ライブラリ、App Engineライブラリ、およびいくつかのバンドルされたサードパーティパッケージが含まれます。 サードパーティーのパッケージが含まれています。

このため、私は と仮定します。 'the App Engine libraries' には protorpc が含まれていると仮定していますが、不明です。 さらに サンプルAPIにCloud Endpoints Frameworksのライブラリを追加する は、アプリの lib ディレクトリに google-endpoints をインストールする必要があるだけです。

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

私が言いたいのは、私が何かをインストールしていないとは思わないし、私の (Web) アプリの lib ディレクトリで何かが欠けているとも思わないということです。

どのように解決するのですか?

Visual Studio Codeの設定ファイル( settings.json ) を開き、ライブラリパスを "python.autoComplete.extraPaths" のリストに追加します。

"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"
],