为什么导入无法解决?

tac*_*tor 3 python visual-studio-code

我已经看到了这个问题的几个答案,尽管没有一个解决方案适合我的特定情况。我正在尝试开始使用 Flask 构建 API。当我尝试导入 Flask-RESTful 时,VS Code 中出现错误。作为上下文,我使用的是 Windows 11。以下是我的 .py 文件的前两行:

from flask import Flask
from flask_restful import Resource, Api, reqparse
Run Code Online (Sandbox Code Playgroud)

我得到的错误如下:

Import "flask_restful" could not be resolved Pylance(reportMissingImports)
Run Code Online (Sandbox Code Playgroud)

现在,为了添加更多上下文,我已检查以确保设置解释器路径,使用Ctrl+Shift+P打开命令面板并为虚拟环境中的项目选择正确的(也是唯一的)Python 解释器。当我运行时pip list,我得到以下输出:

(api) C:\Users\<Username>\OneDrive\Documents\PythonProjects\api>pip list
Package                 Version
----------------------- ---------
aiohttp                 3.8.1
aiosignal               1.2.0
alembic                 1.8.0
aniso8601               9.0.1
anyio                   3.6.1
async-timeout           4.0.2
attrs                   21.4.0
bleach                  5.0.1
certifi                 2022.6.15
charset-normalizer      2.1.0
click                   8.1.3
click-log               0.4.0
colorama                0.4.5
deprecation             2.1.0
docutils                0.19
dotty-dict              1.3.0
Flask                   2.1.2
Flask-Migrate           3.1.0
Flask-RESTful           0.3.9
Flask-SQLAlchemy        2.5.1
flask-swagger           0.2.14
frozenlist              1.3.0
gitdb                   4.0.9
GitPython               3.1.27
gotrue                  0.5.0
greenlet                1.1.2
h11                     0.12.0
httpcore                0.14.7
httpx                   0.21.3
idna                    3.3
importlib-metadata      4.12.0
invoke                  1.7.1
itsdangerous            2.1.2
Jinja2                  3.1.2
keyring                 23.6.0
Mako                    1.2.1
MarkupSafe              2.1.1
multidict               6.0.2
packaging               21.3
pip                     22.0.4
pkginfo                 1.8.3
postgrest-py            0.10.2
psycopg2                2.9.3
pydantic                1.9.1
Pygments                2.12.0
pyparsing               3.0.9
python-dateutil         2.8.2
python-gitlab           3.6.0
python-semantic-release 7.28.1
pytz                    2022.1
pywin32-ctypes          0.2.0
PyYAML                  6.0
readme-renderer         35.0
realtime                0.0.4
requests                2.28.1
requests-toolbelt       0.9.1
rfc3986                 1.5.0
semver                  2.13.0
setuptools              58.1.0
setuptools-scm          7.0.4
six                     1.16.0
smmap                   5.0.0
sniffio                 1.2.0
SQLAlchemy              1.4.39
storage3                0.3.4
supabase                0.5.8
supabase-client         0.2.4
tomli                   2.0.1
tomlkit                 0.10.2
tqdm                    4.64.0
twine                   3.8.0
typing_extensions       4.3.0
urllib3                 1.26.10
webencodings            0.5.1
websockets              9.1
Werkzeug                2.1.2
wheel                   0.37.1
yarl                    1.7.2
zipp                    3.8.0
Run Code Online (Sandbox Code Playgroud)

为什么flask...Flask导入可以工作,但不行flask_restful?我可以在项目目录的Lib\site-packages文件夹中看到两者,并且虚拟环境pip list 外部的输出是不同的,这向我表明路径或目录没有问题。

编辑:我忘了提及,当我使用运行代码时Ctrl + Alt + N,我得到以下输出:

Traceback (most recent call last):
  File "c:\Users\<Username>\OneDrive\Documents\PythonProjects\api\api.py", line 3, in <module>
    from flask_restful import Resource, Api, reqparse
ModuleNotFoundError: No module named 'flask_restful'
Run Code Online (Sandbox Code Playgroud)

再次强调,导入flask时没有错误,只有flask_restful时才出现错误。

任何对此的帮助将不胜感激!预先感谢您抽出时间。如果需要,我很乐意提供更多信息。谢谢。

编辑:我已经更新了 pip 并尝试在命令提示符下简单地运行该程序。这就是我得到的。不过,我仍然在 VS Code 中遇到导入错误。我将看看使用不同版本的 Python 是否会有所不同。感谢大家迄今为止的所有帮助,我很感激!

编辑:好的,看来问题已经接近解决了。所以,我更新了pip。我重试设置解释器路径,正如你们中的一些人提到的,事实证明我做错了。我必须Ctrl + Shift + P >> Python: Select Interpreter >> Enter interpreter path这样做并选择正确的路径。我通过进入项目目录、脚本文件夹并选择python.exe.

这解决了皮兰斯的问题。在处理该项目时,我不再在编辑器中看到错误。但是,解释器不会显示在窗口的右下角。这可能只是一个错误,我可以查看 GitHub 上的问题,或者我想其他时间打开一个新问题。

当我运行代码时,Ctrl + Alt + NModuleNotFoundError再次得到与flask_restful相关的信息。但是,当我set flask_app=api.py >> flask run在终端中运行时,它已从浏览器中的白色背景更改为黑色背景,并显示它想要显示的消息(一个简单的“Hello,World”作为测试)。

我应该继续下去直到遇到另一个问题吗?我也尝试过python -m api并且也有效。我应该忽略 VS Code 输出窗口吗?另外,很抱歉回复晚了。我感谢大家的帮助和耐心。

Min*_*SFT 5

使用Ctrl+Shift+P命令,搜索and select Python:Select Interpreter(或者直接点击右下角显示的python版本),选择正确的解释器。

在此输入图像描述