在同一个命名空间下有多个包时,如何使VSCode在调试时继续搜索要导入的模块



我有一个Python项目,我依赖于我开发的另一个Python包。

称它们为'moduleA'和'moduleB'。两者都作为Python包分发。

我给了这些包一个命名空间,其中公司名称是顶层。即。"companyA。moduleA'和'companyA.moduleB'.

在我的repo (for moduleB),我有一个'src'布局:

projectB
├── build
│   └── venv
├── .env
├── setup.cfg
├── setup.py
├── src
│   └── companyA
│       └── moduleB
│           ├── classB.py
│           └── __init__.py
└── tests

为了调试,我在构建文件夹下创建了一个虚拟环境。在这种情况下,我已经用pip安装了依赖模块a。所以,我可以用'from companyA '。

但是,当我在VSCode中调试moduleB时,我无法从moduleA导入,因为它在'src/companyA'文件夹中查找'moduleA',而不查看venv的site-packages文件夹。

是否可以配置VSCode,以便如果在'src/companyA'下找不到'moduleA',则在venv站点-packages中的'companyA'下搜索?

PS !我正在运行Python v3.11+

PS2 !当在一个虚拟环境中安装两个包时,它可以工作(因为两个包都安装在相同的命名空间下)。问题是在VSCode中调试。

可以使用快捷键"Ctrl+Shift+P">Python:选择interpreter 选择虚拟环境。

否则,您可以在调试时通过调试配置的设置显式设置launch.json中的Python解释器。

我不是100%确定为什么它不适合我。但是,清除所有我能找到的缓存,临时选择另一个Venv,最后,重新选择我的工作Venv,解决了这个问题。

相关内容

  • 没有找到相关文章

最新更新