Jac*_*ack 31 python google-app-engine visual-studio python-2.7 protorpc
我在Visual Studio Code中使用pylint来开发Python中的Google App Engine(GAE)Cloud Endpoint API.我无法解决lint错误.我不知道是什么导致了错误,但是猜测,pylint找不到库?protorpc
故障排除Linting中的建议修复是将工作空间设置配置为指向完全限定的python可执行文件.我已经这样做了,但皮棉错误仍然存在.
protorpc 本身安装到:
~/google-cloud-sdk/platform/google_appengine/lib/protorpc-1.0/protorpc
Run Code Online (Sandbox Code Playgroud)
...这包含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
Run Code Online (Sandbox Code Playgroud)
我已将此路径添加到$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
Run Code Online (Sandbox Code Playgroud)
应用程序在本地运行,也在部署时运行,因此这似乎只是一个lint错误,但令人沮丧的是我无法解决它.
使用第三方库声明:
标准环境中的Python运行时包括Python标准库,App Engine库和一些捆绑的第三方软件包.
因此,我认为 "App Engine库"包括protorpc,但我不确定.此外,将Cloud Endpoints Frameworks库添加到示例API只需要将 google-endpoints安装到应用程序的lib目录:
pip install -t lib google-endpoints --extra-index-url=https://gapi-pypi.appspot.com/admin/nurpc-dev --ignore-installed
Run Code Online (Sandbox Code Playgroud)
我的观点是,我不认为我没有安装任何东西,我认为我在我的(网络)应用程序的lib目录中遗漏了任何东西.
Iva*_*_ug 55
改变库路径对我有用.点击Ctrl + Shift + P并打字python interpreter并选择其中一个可用的.一个人很熟悉(正如早前工作得很好的virtualenv所指出的那样)并且它起作用了.记下你正在使用的python版本,2.7或3.x并相应地选择
小智 24
我遇到了同样的问题(VS Code).由以下方法解决
1)从命令选项板中选择解释器命令(Ctrl + Shift + P)
2)搜索"选择解释器"
3)选择已安装的python目录
参考: - https://code.visualstudio.com/docs/python/environments#_select-an-environment
wiz*_*awu 16
对于您的情况,请将以下代码添加到 vscode 的settings.json.
"python.linting.pylintArgs": [
"--init-hook='import sys; sys.path.append(\"~/google-cloud-sdk/platform/google_appengine/lib\")'"
]
Run Code Online (Sandbox Code Playgroud)
对于其他在 pip 包方面遇到麻烦的人,您可以使用
"python.linting.pylintArgs": [
"--init-hook='import sys; sys.path.append(\"/usr/local/lib/python3.7/dist-packages\")'"
]
Run Code Online (Sandbox Code Playgroud)
你应该python3.7用你的python版本替换上面的。
Mor*_*rad 12
打开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"
],
Run Code Online (Sandbox Code Playgroud)
小智 9
花了几个小时试图修复导入本地模块的错误。代码执行很好,但 pylint 显示:
Unable to import '<module>'
Run Code Online (Sandbox Code Playgroud)
终于想通了:
首先,选择正确的python路径。(在虚拟环境的情况下,它将是 venv/bin/python)。你可以通过点击来做到这一点
确保您的 pylint 路径与您在步骤 1 中选择的 python 路径相同。(您可以从终端激活的 venv 中打开 VS Code,以便它自动执行这两个步骤)
最重要的一步:在包含您的模块文件的文件夹中添加一个空的 __init__.py 文件。虽然python3不需要这个文件来导入模块,但我认为pylint仍然需要它来进行linting。
重新启动 VS Code,错误应该消失了!
小智 5
我还没有尝试过所有的可能性,但至少我的印象是这可能是与 python 版本相关的问题。不知道为什么,我只是相信自己的直觉。
因此,我只是将 pythonPath 更改为 python3(默认值:python):
"python.pythonPath": "python3"
Run Code Online (Sandbox Code Playgroud)
我重新安装了依赖项(包括 pylint !!!)
pip3 install <package> --user
Run Code Online (Sandbox Code Playgroud)
...在重新启动 vs 代码后,一切看起来都很好。
HTH凯
即使在确认正确python并且pylint正在从我的虚拟环境中使用后,我仍然收到这些错误。
最终我发现在 Visual Studio Code 中我是 A) 打开我的项目目录,这是 B) 我的 Python 虚拟环境所在的位置,但我是 C) 从更深的两个级别运行我的主要 Python 程序。这三件事需要同步才能正常工作。
以下是我的建议:
在 Visual Studio Code 中,打开包含主 Python 程序的目录。(这可能是也可能不是项目目录的顶层。)
选择终端菜单 > 新建终端,直接在同一个目录下创建一个虚拟环境。
python3 -m venv env
Run Code Online (Sandbox Code Playgroud)在虚拟环境中安装pylint。如果您在侧栏中选择任何 Python 文件,Visual Studio Code 将提供为您执行此操作。或者,source env/bin/activate那么pip install pylint。
在编辑器窗口的蓝色底栏中,选择 Python 解释器env/bin/python。或者,转到“设置”并设置“Python:Python 路径”。这python.pythonPath在 Settings.json 中设置。
.env最简单的解决方案是在项目根目录中创建一个包含以下内容的文件:
PYTHONPATH=.
Run Code Online (Sandbox Code Playgroud)
你不需要__init__.py文件。即使您的代码位于src目录中并且单元测试位于tests子目录中,它也可以工作。这有助于pylint找到pytest所有模块。
有关详细信息,请参阅https://code.visualstudio.com/docs/python/environments#_environment-variable-definitions-file
| 归档时间: |
|
| 查看次数: |
51156 次 |
| 最近记录: |