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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Visual Studio Code pylint:无法导入'protorpc'相关的知识,希望对你有一定的参考价值。

我在pylint中使用Visual Studio Code来开发Google App Engine(GAE)Cloud Endpoint API in Python。我无法解决lint错误。我不知道是什么导致错误,但在猜测,pylint找不到protorpc库?

enter image description here

Troubleshooting Linting中的建议修复是将工作空间设置配置为指向完全限定的python可执行文件。我已经这样做了,但皮棉错误仍然存​​在。

enter image description here

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(以及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错误,但令人沮丧的是我无法解决它。

Using third-party libraries说:

标准环境中的Python运行时包括Python标准库,App Engine库和一些捆绑的第三方软件包。

因此,我认为'App Engine库'包括protorpc,但我不确定。此外,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目录中遗漏了任何东西。

答案

打开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"
],
另一答案

改变库路径对我有用。击中Ctrl + Shift + P并输入python interpreter并选择其中一个显示的。一个人很熟悉(正如早前工作得很好的virtualenv所指出的那样)并且它起作用了。记下你正在使用的python版本,2.7或3.x并相应地选择

另一答案

我遇到了同样的问题(VS Code)。由以下方法解决

1)从命令选项板中选择解释器命令(Ctrl + Shift + P)

2)搜索“选择解释器”

3)选择已安装的python目录

参考: - https://code.visualstudio.com/docs/python/environments#_select-an-environment

另一答案

我没有玩过所有的可能性,但至少我觉得这可能是一个与python版本相关的问题。不知道为什么,我只相信自己的直觉。

因此我只是将pythonPath更改为python3(默认值:python):

"python.pythonPath": "python3"

我重新安装了依赖项(包括pylint !!!)

pip3 install <package> --user

...重启vs代码后,一切看起来都很好。

很多持久性

另一答案

首先,我将检查它居住的python3路径

enter image description here

然后在VS Code设置中添加该路径,例如:

"python.pythonPath": "/usr/local/bin/python3"
另一答案

我通过将protorpc库添加到$PYTHONPATH环境变量来解决这个问题。具体来说,我指向我的App Engine目录中安装的库:

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

将此添加到~/.bash_profile,重新启动我的机器和Visual Studio代码后,导入错误就消失了。

为了完整起见,我没有修改任何与Python相关的Visual Studio代码设置。完整的~/.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
另一答案

visual studio默认设置应与解释器路径相同。

Change VS code default setting: windows:文件>首选项>设置


    "python.pythonPath": "C:\\Users\\Anaconda3\\pythonw.exe",
    "workbench.startupEditor": "newUntitledFile"

找到合适的解释器:windows:Ctrl + Shift + P-> select interpreter:

该解释器的路径应与您正在处理的版本相同。

另一答案

即使在确认我的虚拟环境中使用了正确的pythonpylint后,我仍然遇到这些错误。

最后我发现在Visual Studio代码中我是A)打开我的项目目录,这是我的Python虚拟环境所在的B),但我是C)从更深层次的两个级别运行我的主要Python程序。这三件事需要同步才能完成所有工作。

这是我建议的:

  1. 在Visual Studio Code中,打开包含主Python程序的目录。 (这可能是也可能不是项目目录的顶层。)
  2. 选择终端菜单>新终端,直接在同一目录中创建虚拟环境。 python3 -m venv env
  3. 在虚拟环境中安装pylint。如果您在侧栏中选择任何Python文件,Visual Studio Code将提供为您执行此操作。或者,source env/bin/activate然后pip install pylint
  4. 在编辑器窗口的蓝色底部栏中,选择Python解释器env/bin/python。或者,转到“设置”并设置“Python:Python Path”。这在Settings.json中设置python.pythonPath
另一答案

对于您的情况,将以下代码添加到vscode的settings.json

"python.linting.pylintArgs": [
    "--init-hook='import sys; sys.path.append(\"~/google-cloud-sdk/platform/google_appengine/lib\")'"
]

对于那些遇到pip包问题的人,你可以选择

"python.linting.pylintArgs": [
    "--init-hook='import sys; sys.path.append(\"/usr/local/lib/python3.7/dist-packages\")'"
]

你应该用你的python版本替换上面的python3.7

以上是关于Visual Studio Code pylint:无法导入'protorpc'的主要内容,如果未能解决你的问题,请参考以下文章

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

Visual Studio Code 打开.py代码报Linter pylint is not installed解决办法

带有 PyLint 和 autoPep8 的 Visual Studio 代码:如何避免 PyLint 抱怨我的行长?

为啥 python Visual Studio 代码中没有显示 pylint 的错误曲线?

开发环境安装 Visual Studio Code 开发环境 ( 下载 Visual Studio Code 安装器 | Visual Studio Code )

visual studio code 怎么用