在 Windows 10 上使用 Python 3.9.2 在 VS Code 中无法解析/无法从源 Pylance 解析导入
- 2025-04-16 08:58:00
- admin 原创
- 19
问题描述:
我的 Flask App 服务器正在运行,但有三个导入无法解析。
我尝试过:
单独重新安装导入
重新安装 requirements.txt
我为 VSCode Workspace 配置了指向我的项目文件夹的额外路径(现在我的项目文件夹根目录中有一个 .vscode 文件,而以前它不存在)
我已经在 VSCode 中更新了我的 venv 路径设置
这是我的文件结构:
- > .vscode
- > client *(React front end)*
- > data
- > server *(Python/Flask back end)*
- > app
- > venv
- config.py
- README.md
- requirements.txt *(this contains the 3 unresolved, along with several that are resolving)*
- .env
- .flaskenv
- .gitignore
- requirements.txt
很遗憾,这些方法都没能解决我的导入问题,我的路由仍然无法正常工作。有什么想法/建议吗?
解决方案 1:
打开命令面板 (
Ctrl
+Shift
+P
),然后选择Python: Select Interpreter。从列表中,选择项目文件夹中以 开头的虚拟环境.env
。运行终端:创建新的集成终端(
Ctrl
++或从命令面板),它将创建一个终端并通过运行其激活脚本自动Shift
激活虚拟环境。`
sqlalchemy
使用mongoengine
命令安装pip install
。安装成功后,导入时会自动生成智能提示,不会出现任何警告。
此外,该文件夹.vscode
还用于存储工作区设置以及调试和任务配置。
解决方案 2:
要解决此问题,请执行以下步骤:
按键盘上的
Ctrl
+Shift
+打开命令面板
。P
在命令面板中,选择
Python: Clear Cache and Reload Window
。
解决方案 3:
如果您正在使用虚拟环境,并且即使尝试使用 pip 安装所有必要的库之后,您仍然必须选择虚拟环境文件夹中存在的 python 解释器。
(Ctrl+Shift+P)然后搜索“Python:选择解释器”
单击“输入解释器路径”,然后单击“查找...”。
导航到您的项目虚拟环境文件夹
进入“Scripts”文件夹,然后选择“python.exe”作为解释器。
这些步骤允许您选择与项目虚拟环境相关的正确的 Python 解释器。
解决方案 4:
我在项目 repo 的 .vscode 文件夹中包含的 settings.json 文件中指定了我正在使用的 python 解释器的路径。
"python.pythonPath": "path-to-interpreter.python.exe"
感谢以下资源!https://dev.to/climentea/how-to-solve-pylance-missing-imports-in-vscode-359b
解决方案 5:
运行
pip --version
并复制site-packages
路径。(不要复制整个 pip 路径,只需复制文件夹位置)在 VS 上打开设置,然后
@ext:ms-python.vscode-pylance
在设置搜索栏中输入。找到
Python › Analysis: Extra Paths
设置。单击
Add Item
并粘贴复制的值。
解决方案 6:
选择 Python 解释器,然后使用重新加载窗口清除缓存对我来说是有效的。
解决方案 7:
确保我的 Python 环境设置正确后,我执行了“查看”->“命令面板...”->“开发人员:重新加载窗口”
显然,就我而言,pylance 需要重新加载窗口才能获得正确的上下文。
解决方案 8:
我在一台 Windows 电脑上工作。我使用 miniconda 来管理我的虚拟环境。当我编写代码时,我会从命令提示符 (cmd) 启动所有程序,包括 Vscode。
即使在 Vscode 中正确设置了 Python 环境,我还是遇到了你提到的同样的导入错误。有趣的是,我运行代码时没有遇到任何问题,一切正常。但在编写代码时,我看不到与出现导入错误的库相关的函数。
解决方案:
从命令提示符启动 Vscode 之前,请先为项目激活正确的 conda env。
为什么会发生这种情况?
我认为这种情况发生是因为,当你在启动 Vscode 之前没有激活任何 conda 环境时,基础 conda 环境会被默认加载。这会导致导入冲突(你可以将这些包安装到环境中,然后像之前一样运行所有程序来检查这个问题)。
解决方案 9:
可能是因为这个原因,VSCode 使用了错误的 Python 路径。如有必要,应该使用基础解释器而不是 vscode 解释器。
解决方案 10:
在确认我的 Python 解释器在 VS Code 中正确加载后,我简单地清理了环境变量,并在本地重新安装了项目,导入错误就消失了。我个人的 VS Code/Pylance 缓存有点奇怪,重新安装依赖项和模块就解决了这个问题。
解决方案 11:
这可能与您的情况无关,但如果您在 VS Code 中打开一个交互式窗格,那么无论您将其设置为什么,VS Code 都会保留该环境。因此,请关闭交互式窗口,切换至您想要使用的环境,然后再返回。
解决方案 12:
对于 miniconda,我必须使用 安装 python-dotenv conda install python-dot-env
。我尝试将目标标志传递给 pip。
解决方案 13:
对于 VSCode,使用以下命令将依赖包安装到项目的虚拟环境中:
.venvscriptspython -m pip install -r requirements.txt
解决方案 14:
就我而言,我用它来asdf
管理语言 SDK。所以,选择./env/bin/python
(~/projects/myproject/env/bin/python
对我来说) 不起作用——我的一些库可以通过这种方式识别,但不是全部。为了解决这个问题,我不得不选择输入which python
venv 时显示的 Python 解释器——结果可能和你想象的不 ./env/bin/python
一样——它实际上是~/.asdf/shims/python
。
就我而言,~/.asdf/shims/python
这是一个执行以下任务的 shell 脚本exec /opt/homebrew/opt/asdf/libexec/bin/asdf exec "python" "$@"
......
而且,看起来只有一部分pip 包最终到达了我预期的位置(env/lib/python3.11/site-packages
)——我想这意味着其余的包都是全局安装的?或者说,它们全都像乌龟一样……
部分原因是我很高兴代码完成功能能够正常工作并且 vscode 中的波浪线消失了;然而,这似乎为我未来的解开创造了一些新的有趣的谜题。
解决方案 15:
使用 Windows 选项“连接到网络驱动器”,我将我的计算机连接到存储文件的位置。
现在一切正常。
扫码咨询,免费领取项目管理大礼包!