debugging VS Code Python编译器使用虚拟文件而不是实际的源代码

brjng4g3  于 12个月前  发布在  Python
关注(0)|答案(1)|浏览(125)

安装

  • Python插件(以前称为Pylance)
  • 标准VS代码调试器
  • PDM /pyproject.toml封装格式
  • 在本地安装软件包

如果需要,我可以提供其他配置细节,但我认为它们无关紧要。

问题

我有一个包,其中有一个模块正在调用另一个模块中的函数。而不是调用我正在编辑的 * 实际 * 源代码,并且存在于repo中,它正在调用虚拟环境中使用的文件。即,

  • 调用模块A中的函数1,该函数调用模块B中的函数2。
  • 但是,不是调用模块B,而是调用 * 在我的虚拟环境中安装模块B。
  • 实际源中的模块B:src/phxfakedata/utils/traverse.py
  • 虚拟环境中的模块B:.venv/lib/python3.8/site-packages/phxfakedata/utils/traverse.py
  • 模块A正在从实际的存储库src/phxfakedata/generate/generate.py进行调试,但是当它深入研究模块B时,它正在虚拟环境中调用模块。
  • 这是一个问题,因为我开始处理这个问题-它在模块B中,但只有在从模块A调用时才可见-然后我意识到我所做的所有修复都是在虚拟环境文件上完成的,所以当我运行(正确隔离的)测试时,它们都失败了,因为我所做的所有工作都在错误的文件上。

解决方案

我希望有某种配置 * 在VS代码 *,我可以告诉它,请不要使用虚拟环境,但使用实际的代码。
我以为这是因为我实际上并没有安装为一个可编辑的软件包,但这似乎不是问题。

pb3skfrl

pb3skfrl1#

使用以下设置忽略您不想获取的模块:

"python.analysis.exclude": [],

不应包括的目录或文件的路径。这些路径覆盖包括目录,允许排除特定的子目录。请注意,如果引用了排除路径中的文件,则这些文件仍可能包括在分析中(导入)未排除的源文件。路径可能包含通配符**(一个目录或多个目录级别),*(零个或多个字符的序列),或者?如果未指定排除路径,Pylance将自动排除以下目录:**/node_modules**/__pycache__.git和任何虚拟环境目录。

相关问题