【发布时间】:2019-07-18 14:56:16
【问题描述】:
我有一个 python 项目,其源代码树如下:
|-src
| |- module1
| | |- tests
| |- module2
| | |- tests
|- ...
它将以包mypkg 的形式部署到docker,以我无法更改的方式——透明地添加mypkg 文件夹和__init__.py。
在我的代码中,我通常使用import mypkg.module1 或from mypkg.module2 import xyz 导入内容。但是,由于src 下没有mypkg 文件夹(和__init__.py),pycharm 无法识别这些导入并报告Unresolved reference 错误,并且无法针对任何测试运行pytest(即使它们不是依赖于仅在 docker 中可用的任何资源)。
现在对于测试,我将测试中的导入从 import mypkg.module1 更改为 import module1,在 pycharm 中运行测试,修复错误,将其改回并提交。但正如您可以想象的那样,这很容易出错并且很烦人。
有什么方法可以告诉 pycharm 或 python 环境(也许$PYTHONPATH 将我的包识别为mypkg 并采取相应的行动?
我正在使用 python 3.5+,专门(如果重要的话)。
【问题讨论】:
-
那么,您的项目结构与安装包的方式不匹配是否有原因?为什么在安装过程中会创建
mypkg父包? 当然这会导致问题。那是谁的主意? -
不是我的:)——但我必须忍受它。
标签: python pycharm python-import pythonpath