我正在 Visual Studio Code 中使用 pylint 开发 Google App Engine (GAE) Cloud Endpoint API in Python。我无法解决 lint 错误。我不知道是什么导致了这个错误,但我猜测,pylint 找不到 protorpc
库?
[!此处输入图片描述][4]
在Troubleshooting Linting中建议的解决方法是配置工作区设置,将其指向完全合格的 python 可执行文件。我已经这样做了,但 lint 错误依然存在。
[!此处输入图片描述][6]
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 库和一些捆绑的 第三方软件包。
因此,我假设'应用引擎库'包括 protorpc
,但我并不确定。 此外,在示例 API 中添加云端点框架库 只要求将 google-endpoints 安装到应用程序的 lib 目录中:
pip install -t lib google-endpoints --extra-index-url=https://gapi-pypi.appspot.com/admin/nurpc-dev --ignore-installed
我的观点是,我不认为我没有安装任何东西,我也不认为我的(网络)应用程序的 lib 目录中缺少任何东西。
打开 Visual Studio 代码的设置文件 (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"
],
我在 $PYTHONPATH
环境变量中添加了 protorpc 库,从而解决了这个问题。具体来说,我指向了安装在我的 App Engine 目录中的库:
export PYTHONPATH=$PYTHONPATH:/Users/jackwootton/google-cloud-sdk/platform/google_appengine/lib/protorpc-1.0
将其添加到 ~/.bash_profile
后,重启机器和 Visual Studio Code,导入错误就消失了。
为完整起见,我没有***修改任何与 Python 有关的 Visual Studio Code 设置。完整的 ~/.bash_profile
文件:
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