我正在使用以下设置
我想让我们在Visual Studio代码中使我的生活更轻松一些,但是,每次导入我都声明“未解决的导入”。即使是默认的django导入(即从django.db导入模型)。
我认为这是因为它没有看到虚拟环境python文件。
一切正常,但开始变得烦人了。
我选择的解释器都是python的所有系统版本。似乎根本看不到我的虚拟环境python(它与我的工作空间不在同一个目录中,因此该部分很有意义)。
如果我在settings.json文件中设置了python.PythonPath,它只会忽略它,并且不会列出我的虚拟环境路径作为选项。我也尝试在全局python设置中进行设置,但它也没有显示。
有人遇到过这个问题,并且知道快速解决问题的方法吗?
谢谢, jAC
答案 0 :(得分:35)
在导入自己的模块时,可接受的答案无法解决错误。
在工作空间设置.vscode/settings.json
"python.autoComplete.extraPaths": ["./path-to-your-code"],
答案 1 :(得分:16)
在您的workspace settings中,您可以这样设置python路径:
{
"python.pythonPath": "/path/to/your/venv/bin/python",
}
答案 2 :(得分:16)
答案 3 :(得分:9)
答案 4 :(得分:8)
如果您的settings.json
文件中包含此代码,请将其删除
{
"python.jediEnabled": false
}
答案 5 :(得分:8)
除此解决方案外,其他解决方案均无效。替换settings.json中的“ Pylance”或“ Microsoft”即可解决我的问题。
"python.languageServer": "Jedi"
答案 6 :(得分:7)
我想知道这个问题有(或没有)多少解决方案,我尝试了上面的大多数方法,没有任何效果,唯一有效的解决方案是将python语言服务器设置为Jedi,而不是settings.json中的Microsoft。文件:
"python.languageServer": "Jedi"
答案 7 :(得分:7)
我能够通过在.vscode \ settings.json中启用jedi来解决此问题
"python.jediEnabled": true
来自https://github.com/Microsoft/vscode-python/issues/3840#issuecomment-456017675的参考
答案 8 :(得分:4)
对我来说,问题与我正在从事的项目有关。我花了一些时间才弄清楚,因此希望对您有所帮助:
原始文件夹结构:
root/
__init__.py # Empty
folder/
__init__.py # Empty
sub_folder_b/
my_code.py
sub_folder_c/
another_code.py
在another_code.py中:
from folder.sub_folder_b import my_code.py
这没有触发Visual Studio Code中的智能感知,但确实执行了OK。
另一方面,在导入路径上添加“ root”确实可以使智能感知工作,但是在执行时引发了ModuleNotFoundError:
from root.folder.sub_folder_b import my_code.py
解决方案是删除“文件夹”目录中的_ init _。py文件,仅保留位于{{1}的_ init _。py }。
答案 9 :(得分:3)
答案 10 :(得分:3)
以上都不对我有用。但是,将以下两行添加到我的settings.json文件中。
"python.analysis.disabled": [
"unresolved-import"
],
"python.linting.pylintArgs": ["--load-plugin","pylint_protobuf"]
第一行实际上只是隐藏了掉毛错误。当然不是永久性的解决方案,但会使屏幕杂乱无章。
这个答案给了我第二行:VS Code PyLint Error E0602 (undefined variable) with ProtoBuf compiled Python Structure
也许有人比我更了解python了。
答案 11 :(得分:3)
我在导入与项目相关的(非标准)模块时遇到了同样的问题。 问题详细说明
目录结构:
Project_dir:
.vscode/settings.json
dir_1
> a
> b
> c
dir_2
> x
> y
> z
我们想要的:
Project_dir
dir_3
import a
import y
此处“import a”和“import y”失败并出现以下错误:
Import "dir_1.a" could not be resolvedPylancereportMissingImports
Import "dir_2.y" could not be resolvedPylancereportMissingImports
什么对我有用:
附加包含要导入的模块的顶级目录。
在上面的例子中,在“.vscode/settings.json”中添加以下“Code to append”
文件名:
.vscode/settings.json
要附加的代码:
"python.analysis.extraPaths": [dir_1, dir_2]
答案 12 :(得分:3)
这里的答案都没有为我解决这个错误。代码会运行,但我无法直接跳转到函数定义。它仅适用于某些本地包。一方面,python.jediEnabled
不再是一个有效的选项。我做了两件事,但我不确定第一件事是否必要:
python.languageServer
更改为“Pylance”"python.analysis.extraPaths": [ "path_to/src_file" ]
显然会检查 root 和 src
是否有本地包,但必须在此处添加其他包。
答案 13 :(得分:2)
改变 Python:语言服务器 “杰迪”为我工作。 最初是“ Windows”。
答案 14 :(得分:2)
之所以发生这种情况,是因为Visual Studio Code会将当前文件夹视为主文件夹,而不是实际的主文件夹。
修复的快速方法是提供主文件夹的解释器路径。
按 Command + Shift + P (或 Ctrl + Shift + P (在其他大多数系统上)。
类型 Python解释器
从可用选项中选择安装Python的路径。
答案 15 :(得分:2)
@Shinebayar G的解决方案有效,但另外一个则更优雅:
从https://github.com/Microsoft/vscode-python/issues/3840#issuecomment-463789294复制:
给出以下示例项目结构:
我为解决此问题所做的事情:
答案 16 :(得分:1)
我正在使用以下设置:(2021 年 4 月)
我在 Django 启动期间遇到了这个错误。 因此,我按照以下步骤操作,此错误已解决。
这些屏幕截图中给出了步骤:
5.现在,保存这个 settings.json 文件。 6.重启vscode
另外,intellisense 可能会在一段时间内不起作用,等待一段时间然后再次重启,然后 vscode 读取新路径的文件。
答案 17 :(得分:1)
对我来说,如果我设置python,pylint和autopep8到本地环境路径的路径,它就起作用了。
为您的工作区添加/更改此内容:
"python.pythonPath": "...\\your_path\\.venv\\Scripts\\python.exe",
"python.linting.pylintPath": "...\\your_path\\.venv\\Scripts\\pylint.exe",
"python.formatting.autopep8Path": "...\\your_path\\.venv\\Scripts\\autopep8.exe",
使用工作区保存并重新启动VS Code。 完成!
答案 18 :(得分:1)
这对我有用:
打开命令选项板(Ctrl-Shift-P)并选择“ Python:选择解释器”。 为此,您可以在VSCode中设置Python解释器
答案 19 :(得分:1)
当我> reload window
修复时。
ref:https://github.com/Microsoft/vscode-python/issues/3840#issuecomment-452657892
答案 20 :(得分:1)
如果您使用的是pipenv
,则需要在settings.json
文件中指定虚拟环境的路径。
例如:
{
"python.pythonPath":
"/Users/username/.local/share/virtualenvs/Your-Virual-Env/bin/python"
}
这会有所帮助。
答案 21 :(得分:1)
我有一个不同的解决方案:我的VSCode实例选择了存储在C0
中的virtualenv,但是使用了错误的Python二进制文件。它正在使用df['C0','ch01','fb1'] = df.loc(axis=1)[pd.IndexSlice['C0','ch01',['f1','f2','f3'],:]].mean(axis=1)
;使用蓝色状态栏中的切换器,我将其更改为使用[tablename]![recieved_date] < DateSerial(Year(Date()), Month(Date()) - 1, 1)
,所有导入均已正确解决。我不知道在执行此操作时VSCode在幕后做什么,也不知道为什么这会导致我的问题,但是对我来说,这是比编辑工作区设置稍微简单的解决方案。希望对您有所帮助。
答案 22 :(得分:0)
pylint 错误:“无法导入 'django.X'”
在您的 conda 环境中激活所需的 Python 解释器后,VS Code 有时会继续使用默认 conda 环境中的 pylint。例如:
<块引用>/home/
$ conda activate <target environment>
$ conda install pylint
/home/
根据您的系统配置替换 <username>
和 <target environment>
。
现在pylint会找到已安装的库,包括Django,假设Django已经安装在<目标环境>中。
$ conda install pylint-django
更新 VS Code 设置以使用插件:
--load-plugins=pylint_django
--django-settings-module=<PROJECT FOLDER>.settings
<PROJECT FOLDER>
替换为包含“settings.py”Django 配置文件的文件夹。答案 23 :(得分:0)
我遇到的问题是找不到我创建的模块的导入。我觉得我尝试了多种方法来确保 python 解释器选择正确,但无济于事。我通过编辑 settings.json Python>Linting>Pylint Args 并添加 init-hook 找到了一个对我有用的答案...
--init-hook="from pylint.config import find_pylintrc; import os, sys; sys.path.append(os.path.dirname(find_pylintrc()))"
此解决方案在 PyLint "Unable to import" error - how to set PYTHONPATH? 中找到。我没有创建和编辑 pylintrc,而是使用 VS Code GUI 添加了上述内容。
答案 24 :(得分:0)
Resolved
首先在json中打开Visual Studio代码设置,然后在"[python]":{}
之后添加以下参数
"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"]
这解决了我关于pylint的问题
答案 25 :(得分:0)
如果有人碰巧和我一样谐趣,那么以下方法就可以了。
旧文件夹结构:
awesome_code.py
__init__.py
src/
__init__.py
stuff1.py
stuff2.py
新结构:
awesome_code.py
src/
__init__.py
stuff1.py
stuff2.py
答案 26 :(得分:0)
我似乎遇到了这个问题,因为 django 安装在我的基本虚拟环境中,而不是我实际用于项目的那个。这基本上导致它工作,但显示错误并且不能正确自动完成。
为了修复我很简单
完成此操作后,您可以返回 VS Code 并将 python 环境切换到基础,然后返回到 VS Code 左下角的您想要的环境。
错误应该消失并且自动完成应该起作用。
答案 27 :(得分:0)
我在使用venv,vscode 1.48.2的python 3.8.5中遇到相同的问题 我找到了解决方案。 在(环境文件夹)/ lib / site-packages中不包含软件包。 我使用此设置(.vscode / settings.json)
{
"python.autoComplete.extraPaths": [
"./**",
],
"python.pythonPath": "env\\Scripts\\python.exe",
"python.languageServer": "Microsoft"
}
答案 28 :(得分:0)
我以三种方式面对这个问题。尽管每个人都可以在该问题的答案中找到解决方案,但我只是想将它们放在一起。
首先,在导入某些模块时出现“未解决的导入”,我注意到我的安装是在全局pip而非虚拟环境中进行的。
此问题是由于Python解释器引起的。您需要使用 Shift + Ctrl + P 在Visual Studio Code中选择解释器,然后键入Select Python Interpreter
。在此处选择您的venv口译员。
第二个问题是:上述更改未能完全解决我的问题。这次是由于文件 settings.json 造成的。如果您的项目目录中没有 settings.json 文件,请创建一个文件并在其中添加以下行:
{
"python.pythonPath": "apis/bin/python"
}
这基本上会告诉Visual Studio Code使用您的虚拟设备中的Python解释器。
第三个问题是在另一个程序中导入自定义Python模块或文件时。为此,您需要了解文件夹结构。由于venv中的Python位于bin中,因此您需要指定模块的文件夹(大多数情况下是应用程序文件夹)。在我的情况下是app
,
from app.models import setup_db
从字面上看,从models.py导入setup_db位于 app 文件夹中。
答案 29 :(得分:0)
安装代码运行器,并将以下代码添加到settings.json文件夹中:
"code-runner.executorMap": {
"python": "python3 -u",
}
“ python”:“(带有模块或其路径的Python可执行文件-u”,
答案 30 :(得分:0)
首先请确保您已经安装了插件,但是很可能工作区目录设置不正确。只需检查Pylint并编辑基础的settings.json文件即可。
{
"python.pythonPath": "/usr/local/bin/python3",
"git.ignoreLimitWarning": true
}
答案 31 :(得分:0)
我有一个库,当尝试使用Jedi语言服务将其包括在内时,会出错,并且在没有库的情况下也可以正常工作(即C#库)。
该库是jsonslicer,它确实取决于我安装到/usr/local/lib
中的外部C库。可能与此有关吗?
我在我的Conda环境中安装了Jedi服务和库,并在Visual Studio中使用了该环境。它在运行时和终端上都可以正常运行,但是在检查源文件中的问题时却无法正常工作,并且显示为错误。
答案 32 :(得分:0)
就我而言,我已经激活了一个conda环境,但是仍然希望本地python模块可用于自动完成,偷看定义等。我尝试了许多解决方案,例如添加python路径列表等。但是最终解决了什么问题我是要创建一个从conda lib/python{your version}/site-packages
到本地模块的符号链接。
答案 33 :(得分:0)
我的解决方案是在上一个目录中打开vscode。
答案 34 :(得分:0)
我已通过CTRL+Shift+P
解决了导入错误
键入首选项设置,然后选择选项Preferences Open Settings (JSON)
并添加一行"python.pythonPath": "/usr/bin/"
所以JSON应该看起来像
{
"python.pythonPath": "/usr/bin/"
}
保留其他配置行(如果存在)。 这应该导入您使用PIP安装的所有模块以实现自动完成。
答案 35 :(得分:0)
我的解决方案。 此解决方案仅适用于当前项目。
.vscode
.vscode/settings.json
setting.json
中添加以下行(这适用于python3){
"python.pythonPath": "/usr/local/bin/python3",
}
{
"python.pythonPath": "/usr/local/bin/python",
}
如果您不知道python的位置,则只需在终端上运行命令which python
或which python3
即可打印python的位置。
此示例适用于dockerized Python-Django。
答案 36 :(得分:0)
万一出现pylint错误,请安装以下内容
pipenv install pylint-django
然后在根文件夹中创建文件 .pylintrc 并编写以下内容
load-plugins=pylint-django
答案 37 :(得分:-1)
我使用命令行python解决了该问题。 我在项目路径中使用vs代码终端安装了模块,但是在Windows命令行python上导入模块时,由于未定义此模块,因此会引发错误 所以我从命令行安装了这些模块,问题解决了。