Visual Studio Code pylint: 无法导入 'protorpc'

我正在 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 目录中缺少任何东西。

更改库路径对我很有效。点击 "Ctrl + Shift + P "并输入 "python interpreter",然后从显示的可用路径中选择一个。其中一个很熟悉(因为指向了之前运行正常的虚拟环境),于是就成功了。请注意您正在使用的 python 版本,是 2.7 还是 3.x,并做出相应选择

评论(4)
解决办法

打开 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"
],
评论(2)

我在 $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
评论(0)