Pycharm 无法使用远程解释器识别文件或文件夹

Gul*_*zar 3 python remote-debugging pytest pycharm

在一个文件中,其唯一内容是

def test_sanity():
    pass
Run Code Online (Sandbox Code Playgroud)

我正在尝试运行名为test_something.py.

文件夹结构是

uv_metadata
|---uv_metadata
|------tests
|----------test_something.py
Run Code Online (Sandbox Code Playgroud)

收到错误

ssh://noam.s@ML:2202/home/noam.s/src/uv_metadata/venv/bin/python -u /home/noam.s/.pycharm_helpers/pycharm/_jb_pytest_runner.py --target test_something.py::test_sanity
Testing started at 14:34 ...
sh: 1: cd: can't cd to C:/Users/noam.s/src/uv_metadata/uv_metadata/tests
Launching pytest with arguments test_something.py::test_sanity --no-header --no-summary -q in /home/noam.s

============================= test session starts ==============================
collected 0 items                                                              

============================ no tests ran in 0.00s =============================
ERROR: file or directory not found: test_something.py::test_sanity


Process finished with exit code 4

Empty suite

Run Code Online (Sandbox Code Playgroud)

我注意到这条线sh: 1: cd: can't cd to C:/Users/noam.s/src/uv_metadata/uv_metadata/tests,这没有意义。以下是我的远程解释器的配置方式:

在此输入图像描述

这刚刚停止工作,我不知道发生了什么变化。

如何让Pycharm重新识别test文件夹?

Gul*_*zar 5

PyCharm 2021.2.3 存在错误的部署配置,当在同一解释器上(甚至来自不同项目)单独配置某些映射时,可能会导致冲突,有时甚至无法正常工作。

很可能,我使用的是来自其他 Pycharm 实例的相同解释器和不同的映射。

我必须转到Build, Execution, Deployment->Deployment并从列表中删除所有内容。

以下是一切清理完毕并添加新解释器后的状态。

在此输入图像描述

我还清理了翻译名单

在此输入图像描述

然后它又恢复工作了。


避免这种情况的一种非常不方便的方法,但要安全

我避免这种情况的方法是每个解释器只有一个路径映射。

如果我需要具有不同映射的相同解释器,我会创建一个新的 docker 容器,以使 Pycharm 认为它实际上是一个不同的解释器。

如果我需要使用不同的解释器进行相同的映射,那么没有问题。

为了访问在远程 docker 内部运行的解释器,我将 PORT 隧道连接到 docker 上的 22,并让 ssh 服务器在启动时在 docker 上运行,就像这样,并映射~~docker 中,因此实际相同的 venv 反映在所有的码头工人。