如何解决 VSCode 中未解决的导入问题?

How to solve unresolved import in VSCode?

我正在尝试学习 Flask,我使用 Ubuntu 19.04,我正在 VSCode 中编写代码。在按照随附的教程进行操作后,我一直遇到问题:未解决的导入"flask_mysqldb" 与 wtforms 和 passlib.

相同

我已经安装了所有要求,只是为了检查,我尝试再次安装并收到消息:'要求已经满足:"someplace"/.local/lib/python2.7/site 中的 mysqlclient -包

我想也许我使用的是 python 3.7,但它会在 2.7 中自行安装?但它从来没有问我在哪里安装。

这是我关注的视频教程: https://www.youtube.com/watch?v=addnlzdSQs4

from flask import Flask, render_template, flash, redirect, url_for, session, loggin
from data import Articles
from flask_mysqldb import MySQL
from wtforms import Form, StringField, TextAreaField, PasswordField, validators
from passlib.hash import sha256_crypt

前两个导入工作正常,其他导入有绿色下划线并收到错误消息。

例如:

未解决的导入问题'flask_mysqldb'

未解决的导入问题'wtforms'

未解决的导入问题'passlib.hash'

您是否尝试过将 VSCode 中的解释器设置为正确的值(包括您的 virtualenv,如果您有的话)?

打开命令面板 (Ctrl-Shift-P) 并选择 "Python: Select Interpreter"。

详情请见:https://code.visualstudio.com/docs/python/environments

在尝试了很多东西都没有用之后,最终重新启动了一切。删除所有文件并再次执行。不知何故它奏效了。一定是设置的时候出错了。

可能,您使用了命令 pip install flask-wtf,但这是错误的方式。首先,您必须使用命令:sudo apt install python3-pip,然后使用命令安装 flask-wtf:pip3 install flask-wtf,因为您需要 python3 的库,而不是 python3 的库python2.

我遇到过这个问题好几次了,它通常只对 "exiting" VSCode 有效,因为 VSCode 有时不检查路径。它使用 "old" 设置或 "path"。通过退出程序并重新启动它,它会更新它并且它可以工作(如果它有这个问题)

我在将 VSCode 与 python3 venv 一起使用时偶然发现了这个问题。

前提: 虽然@truth 的回答为我指出了正确的方向,但我仍然无法 select 正确的解释器:对我来说正确的解释器应该是一个在我的 venv 文件夹中创建,但它没有显示在 venv 选项中,即使我通过 GUI 浏览到正确的文件夹,它也不允许我选择它(因为它可能是一个符号链接?)

TLDR: 对于像我这样默认安装了 python2 的 mac 用户,python3 通过 brew 安装并使用虚拟机环境(由 python3 -m venv 生成),解决方案如下:

  • 保存所有工作并完全关闭 VSCode ( command+Q )
  • 打开您的终端并导航到您的项目文件夹。确保您的 virtualenv 已激活
  • 从根文件夹打开项目:code .
  • 打开命令选项板 (command-Shift-p) 并输入“Python select 解释器”并按回车键
  • select 列表中引用您的 venv 文件夹的解释器

完成,您的依赖项现在应该已解决。