我有一个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,解决了这个问题。