Python 派林;“未解决的进口”;Visual Studio代码中出现错误
我正在使用以下设置Python 派林;“未解决的进口”;Visual Studio代码中出现错误,python,django,visual-studio-code,pylint,Python,Django,Visual Studio Code,Pylint,我正在使用以下设置 (莫哈韦) Python 3.7.1 Visual Studio代码1.30 Pylint 2.2.2 Django 2.1.4 我想使用linting使我在visualstudio代码中的生活变得更轻松。然而,对于每一个导入,我都会声明“未解决导入”。即使是默认的Django导入(即来自Django.db导入模型) 我认为这是因为它没有看到虚拟环境中的Python文件 一切正常,但开始变得烦人了 我选择的解释器都是Python的系统版本。它似乎根本看不到我的虚拟环境Py
- (莫哈韦)
- Python 3.7.1
- Visual Studio代码1.30
- Pylint 2.2.2
- Django 2.1.4
{
"python.pythonPath": "/path/to/your/venv/bin/python",
}
PYTHONPATH=YOUR/MODULES/PATH
如果您的
settings.json
文件中有此代码,请将其删除:
{
"python.jediEnabled": false
}
此问题已在GitHub上打开: 这里有两个非常有用的答案,分别是马格努斯布泽克和斯宾霍伊特的 目前最好的解决方案是在项目根文件夹中创建一个.env文件。然后向其添加一条蟒蛇路径,如下所示:
{
"python.pythonPath": "/path/to/your/venv/bin/python",
}
PYTHONPATH=YOUR/MODULES/PATH
并在您的settings.json中添加:
"python.envFile": ".env"
我有一个不同的解决方案:我的Visual Studio代码实例拾取了存储在
.venv
中的virtualenv,但它使用了错误的Python二进制文件。它使用的是.venv/bin/python3.7
;使用蓝色状态栏中的开关
我将它改为使用.venv/bin/python
,所有导入都得到了正确解析
我不知道当我这样做的时候Visual Studio代码在幕后做了什么,也不知道为什么这会导致我的问题,但对我来说,这是一个比编辑我的工作区设置稍微简单一些的解决方案。当我做
>时,重新加载窗口可以修复它
参考:替代方法:使用命令界面
Cmd/Ctrl+Shift+p→ Python:选择解释器→ 选择包含您要查找的软件包的软件包:
我能够通过在.vscode\settings.json中启用绝地来解决这个问题
"python.jediEnabled": true
从导入自己的模块时,接受的答案不会修复错误
在工作区设置中使用以下设置.vscode/settings.json
:
"python.autoComplete.extraPaths": ["./path-to-your-code"],
参考资料:之前的答案对我都不适用。但是,将下面的两行添加到我的settings.json文件中确实做到了
"python.analysis.disabled": [
"unresolved-import"
],
"python.linting.pylintArgs": ["--load-plugin","pylint_protobuf"]
第一行实际上只是隐藏了linting错误。当然,这不是一个永久的解决方案,但会消除屏幕上的混乱
这个答案给了我第二句话:
也许比我更了解Python的人可以再解释一次。如果出现Pylint错误,请安装以下程序
pipenv install pylint-django
load-plugins=pylint-django
然后在根文件夹中创建一个文件,.pylintrc,并编写以下命令
pipenv install pylint-django
load-plugins=pylint-django
这对我很有用:
打开命令调色板(Ctrl+Shift+p)并选择“Python:选择解释器”
为此,您可以在Visual Studio代码中设置Python解释器。My solution
此解决方案仅适用于当前项目
在项目根目录中,创建文件夹.vscode
然后创建文件.vscode/settings.json
在文件setting.json
中,添加行(这是针对Python 3的)
这是Python2的示例
{
"python.pythonPath": "/usr/local/bin/python",
}
如果您不知道Python安装的位置,只需在终端上运行命令whichpython
或whichpython3
。它将打印Python位置
此示例适用于Python-Django
我已通过Ctrl+Shift+p解决了导入错误。
键入“首选项设置”并选择“首选项打开设置(JSON)”选项
并添加行“python.pythonPath”:“/usr/bin/”
因此,JSON内容应该如下所示:
{
"python.pythonPath": "/usr/bin/"
}
保留其他配置行(如果存在)。
这将导入使用PIP进行自动完成安装的所有模块。工作正常,但另一个模块稍微优雅一些:
抄袭自:
给出以下示例项目结构:
root/
__init__.py # Empty
folder/
__init__.py # Empty
sub_folder_b/
my_code.py
sub_folder_c/
another_code.py
awesome_code.py
__init__.py
src/
__init__.py
stuff1.py
stuff2.py
awesome_code.py
src/
__init__.py
stuff1.py
stuff2.py
- 工作空间根文件夹
- .vscode
- 。。。其他文件夹
- 代码文件夹
我是如何解决这个问题的:
进入工作区文件夹(此处为workspaceRootFolder)并创建一个.env文件
在这个空的.env文件中,添加行PYTHONPATH=codeFolder(用文件夹名替换codeFolder)
将“python.envFile”:“${workspaceFolder}/.env”添加到settings.json
重新启动Visual Studio代码
我的解决方案是在以前的目录中打开Visual Studio代码。如果您更像我,可以使用菜单文件中的Visual Studio代码配置→ 偏好→ 设置(Ctrl+,)。转到分机→ 蟒蛇
在“分析:禁用”部分中,添加对以下消息的抑制:未解析导入
:
对我来说,这个问题与我正在从事的项目有关。我花了一段时间才弄明白,所以我希望这能有所帮助:
原始文件夹结构:
root/
__init__.py # Empty
folder/
__init__.py # Empty
sub_folder_b/
my_code.py
sub_folder_c/
another_code.py
awesome_code.py
__init__.py
src/
__init__.py
stuff1.py
stuff2.py
awesome_code.py
src/
__init__.py
stuff1.py
stuff2.py
在另一个_code.py中:
from folder.sub_folder_b import my_code.py
这并没有触发VisualStudio代码中的intellisense,但它确实执行正常
另一方面,在导入路径上添加“root”确实使intellisense工作,但在执行时引发ModuleNotFoundError:
from root.folder.sub_folder_b import my_code.py
解决方案是删除“folder”目录中的_init_uuupy.py文件,只留下位于/root
的_init_uupy.py文件。您需要选择与虚拟机关联的解释器
"python.linting.pylintArgs": ["--rep[![enter image description here][1]][1]orts", "12", "--disable", "I0011"],
"python.linting.flake8Args": ["--ignore=E24,W504", "--verbose"]
"python.linting.pydocstyleArgs": ["--ignore=D400", "--ignore=D4"]
Project_dir:
.vscode/settings.json
dir_1
> a
> b
> c
dir_2
> x
> y
> z
Project_dir
dir_3
import a
import y
Import "dir_1.a" could not be resolvedPylancereportMissingImports
Import "dir_2.y" could not be resolvedPylancereportMissingImports
.vscode/settings.json
"python.analysis.extraPaths": [dir_1, dir_2]