vscode 中的 pytest 期间出现 Anaconda FileNotFound 错误

Anaconda FileNotFound error during pytest in vscode

我正在尝试 运行 在 conda 环境中对 vscode 进行一些 pytest。与我的 postgres 数据库的连接由 flask/flask-sqlalchemy 处理,我已经安装了 pytest 的附加组件(pytest-flask、pytest-postgresql),以使用一些固定装置。

当我现在尝试 运行 测试(或所有测试)时,我收到以下错误消息:

FileNotFoundError: [Errno 2] No such file or directory: '/home/robert/software/anaconda3/envs/python38/bin/pg_ctl'

现在,这有点明显,因为 conda env 确实没有 pg_ctl 模块。拥有它的是 postgres 的(系统范围)安装。我试图通过 .profile 配置文件修改 PATH,包括 pg_ctl 模块的路径,但是:
!!一旦我在 vscode 中执行 运行 命令,某些由 vscode 测试扩展或 conda(或两者?!?!)触发的进程修改 PATH envvar,从而发生错误。

当我 运行 pytest . 在终端中时,测试 运行 没问题。
当我 运行“调试测试”时,测试 运行 没问题。

有人知道吗??

设置:vscode1.65,conda 4.9.2,python3.8

一旦我找到如何重现它,我将尝试提供一个 MVE...

你能把这个添加到你的 settings.json 文件吗?

"terminal.integrated.env.osx": { "PYTHONPATH": "{pg_ctl 文件夹的路径}" },

使用终端设置时,PYTHONPATH 会影响终端中 运行 的任何工具。

详情请参考official docs