python 为什么进口不能解决?

gg58donl  于 6个月前  发布在  Python
关注(0)|答案(2)|浏览(84)

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

from flask import Flask
from flask_restful import Resource, Api, reqparse

字符串
我得到的错误如下:

Import "flask_restful" could not be resolved Pylance(reportMissingImports)


现在,为了添加更多的上下文,我已经检查确保解释器路径是使用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


为什么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'


同样,导入flask没有错误,只有flask_restful。
任何帮助,这将是非常感谢!提前感谢您的时间。我很高兴提供更多的信息,如果需要的话。谢谢。
编辑:我已经更新了pip,并尝试在命令提示符下运行程序。This is what I got.我仍然在VS Code中遇到导入错误。我将看看使用不同版本的Python是否会有所不同。感谢大家到目前为止的帮助,我很感激!
编辑:好吧,看起来这个问题离解决更近了一点。所以,我更新了pip。我重新设置了解释器路径,你们中的一些人提到了,结果发现我做错了。我必须做Ctrl + Shift + P >> Python: Select Interpreter >> Enter interpreter path并选择正确的路径。我通过进入项目目录,转到scripts文件夹,选择python.exe来做到这一点。
这就解决了Pylance的问题。在处理项目时,我不再在编辑器中看到错误。然而,解释器不会显示在窗口的右下角。这可能只是一个bug,我可以在GitHub上查看问题,或者在其他时候打开一个新的问题。
当我用Ctrl + Alt + N运行代码时,我再次得到一个与flask_restful相关的ModuleNotFoundError。但是,当我在终端中运行set flask_app=api.py >> flask run时,它已经从浏览器中的白色背景变为黑色背景,并显示它想要显示的消息(一个简单的“Hello,World”作为测试)。
我应该继续下去,直到我遇到另一个问题吗?我也尝试了python -m api,这也工作。我应该忽略VS代码输出窗口吗?另外,很抱歉回复晚了。我感谢大家的帮助和耐心。

yhived7q

yhived7q1#

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


的数据

dgiusagp

dgiusagp2#

好吧,这个问题肯定是与选择的Python解释器。
1.检查你使用的python版本
1.检查你是否在windows或Linux或命令提示符下使用wsl
现在在我的情况下选择解释器并没有解决这个问题。我甚至尝试了虚拟环境并给出了一个路径。但python默认情况下将.exe安装在一个隐藏文件夹中,我找不到env文件夹中的文件
我在windows和visual studio代码上使用wsl。
所以我运行了安装在env外部的pip。也在powershell/cmd和终端上。错误消失了。

相关问题