繁体   English   中英

无法从 sourcePylancereportMissingModuleSource 解析导入“flask”

[英]Import "flask" could not be resolved from sourcePylancereportMissingModuleSource

感谢之前有人问过这个问题,但我尝试了这些建议无济于事。

flask 的片段未加载,pip 显示 flask Z78E62261F6393D1CE3656

VSCode 告诉我:无法从 sourcePylancereportMissingModuleSource 解析导入“flask”)

运行export显示:

FLASK_APP=app.py
FLASK_ENV=development

我可以运行flask run并且我的应用程序可以运行,但是当我运行pytest时,我收到:

______________________ ERROR collecting tests/unit/test_app.py ______________________
ImportError while importing test module '/Users/myname/projects/flask-stock-portfolio/tests/unit/test_app.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/importlib/__init__.py:127: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/test_app.py:4: in <module>
    from app import app
E   ModuleNotFoundError: No module named 'app'

其中test_app.py读取:

"""
This file (test_app.py) contains the unit tests for the app.py file.
"""
from app import app

def test_index_page():
    """
    GIVEN a Flask application
    WHEN the '/' page is requested (GET)
    THEN check the response is valid
    """
    with app.test_client() as client:
        response = client.get('/')
        assert response.status_code == 200
        assert b'Flask Stock Portfolio App' in response.data
        assert b'Welcome to the Flask Stock Portfolio App!' in response.data

您能做的任何事情都可以为我指明正确的方向,我们将不胜感激。

您需要将当前工作目录添加到 python 搜索路径。 这可以通过环境变量来完成:

export PYTHONPATH=.

或者,您可以在 Python 中执行此操作。 我通常将它放在我的测试文件夹中的conftest.py文件中,该文件在 pytest 启动时执行。

import sys
from pathlib import Path
path = Path(__file__).parent.parent  # i.e. the folder above the tests folder, which has app
sys.path.append(path)

VS Code 错误是一个单独的问题。 听起来您可能没有选择正确的 Python 环境。 请参阅https://code.visualstudio.com/docs/python/environments

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM