我刚刚发现 vscode 能够直接从编辑器中运行 pytest。那真是太棒了——如果它有用的话。
目前我正在虚拟环境中处理一个项目,该项目已在 vscode 中正确配置(并已激活)。pytest安装在虚拟环境中并激活,我写的测试按预期发现。但是每当我运行测试时,它都会说它找不到我当前正在处理的模块,并且ModuleNotFoundError会引发 a 。
我已经安装了这个模块pip install -e .。在 vscode 之外的普通终端控制台上运行相同的测试工作正常。
如果仅为工作区和/或用户启用 pytest,则没有区别。
示例代码:
def test_something():
from mymodule.config import Config
...
Run Code Online (Sandbox Code Playgroud)
输出:
E ModuleNotFoundError: No module named 'mymodule'
Run Code Online (Sandbox Code Playgroud)
点样本输出:
mymodule 0.1.0 /path/to/mymodule
Run Code Online (Sandbox Code Playgroud)
Stange 也是,vscode 使用所有已安装的插件(即 pytest-datafiles)运行正确的 pytest 脚本(它不是全局安装的,仅在此环境中安装)。
任何想法为什么?
问候, 托马斯
目前,我有一个简单的 API,在某个内部 IIS 站点的子目录下与 Flask 一起运行。现在我认为使用 FastAPI 重写该 API 可能是个好主意。在 IIS 上运行 API 并不是一件难事,您必须web.config在 IIS 配置中创建一些内容。我知道这是使用 WSGI,但是也有可能使用 ASGI(也许与 uvicorn 和 Gunicorn 结合使用)?
重要的一件事是它必须在某个子目录下运行,称之为<iis_internal_company_server>/myapi。在 Flask 中,我包含了一个众所周知的前缀中间件,它可以按预期工作。我正在寻找类似的 FastAPI,这是否可以使用app.include_router(router, prefix='/myapi')?
做了一些研究但没有找到解决方案。也许你们中的一个人对此有一些经验。如果有,请分享。提前谢谢了。
问候,托马斯