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

时间:2019-04-21 14:49:34

标签: flask visual-studio-code python-3.7

我正在尝试学习Flask,我使用Ubuntu 19.04,并且正在VSCode中编写代码。在遵循了随附的教程之后,我仍然遇到问题:未解决的导入“ flask_mysqldb”以及与wtforms和passlib相同的问题。

我已经安装了所有要求,只是检查一下,我尝试再次安装,然后收到消息:“要求已经满足:mysqlsome位于“ someplace” /。local / lib / python2.7 / site-packages中

我以为我可能正在使用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'

5 个答案:

答案 0 :(得分:7)

我已经遇到过几次这个问题,并且通常只在“退出” VSCode时起作用,因为VSCode有时不检查路径。它使用“旧”设置或“路径”。通过退出程序并重新启动它,它会更新它并起作用(如果出现此问题)

答案 1 :(得分:1)

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

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

TLDR:对于像我这样的Mac用户,它们默认情况下安装了python2,通过brew安装了python3,并且使用的是虚拟环境(由python3 -m venv产生),解决方案如下:

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

完成,您的依赖关系现在应该可以解决。

答案 2 :(得分:0)

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

打开命令面板( Ctrl-Shift-P ),然后选择“ Python:Select Interpreter”。

有关更多详细信息,请参见:https://code.visualstudio.com/docs/python/environments

答案 3 :(得分:0)

尝试了许多操作后仍无法正常工作,最终重新启动了所有内容。删除所有文件,然后再次执行。它以某种方式起作用。设置时一定有一些错误。

答案 4 :(得分:0)

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