我在用着pylint https://github.com/DonJayamanne/pythonVSCode/wiki/Linting#pylint in 视觉工作室代码 https://code.visualstudio.com/开发 Google App Engine (GAE)Python 中的云端点 API https://cloud.google.com/endpoints/docs/frameworks/python/about-cloud-endpoints-frameworks。我无法解决 lint 错误。我不知道是什么导致了错误,但猜测,pylint https://github.com/DonJayamanne/pythonVSCode/wiki/Linting#pylint找不到protorpc
图书馆?
建议修复排查 Linting 故障 https://github.com/DonJayamanne/pythonVSCode/wiki/Troubleshooting-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
(随着厨房水槽 http://www.thefreedictionary.com/kitchen+sink):
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 错误,但令人沮丧的是我无法解决它。
使用第三方库 https://cloud.google.com/appengine/docs/standard/python/tools/using-libraries-python-27 states:
标准环境中的Python运行时包括Python
标准库、App Engine 库和一些捆绑的库
第三方软件包。
正因为如此,我assumed“App Engine 库”包括protorpc
,但我不确定。而且,将 Cloud Endpoints Frameworks 库添加到示例 API https://cloud.google.com/endpoints/docs/frameworks/python/quickstart-frameworks-python#adding_the_cloud_endpoints_frameworks_library_to_the_sample_api只需要将 google-endpoints 安装到应用程序的 lib 目录中:
pip install -t lib google-endpoints --extra-index-url=https://gapi-pypi.appspot.com/admin/nurpc-dev --ignore-installed
我的观点是,我不认为我没有安装任何东西,而且我不认为我在我的(网络)应用程序的 lib 目录中丢失了任何东西。