【发布时间】:2020-12-13 10:55:35
【问题描述】:
我的包的结构如下:
package
|___package
| |_subpackage
| | |_ __init__.py
| | |_ module_Y.py
| |_ __init__.py
| |_ module_X.py
|_ main.py
|_ setup.py
我的__init__.py 文件都是空的,module_Y.py 有from package import module_X 这一行。
我还没有安装这个包,因为它甚至还没有远程工作,但我希望 Pylint 能够理解module_Y.py 中的导入语句将是正确的。我知道这 必须 是可能的,因为克隆 TF-Agents 的 repo 并在 VS 代码中打开它,pylint 了解文件中的引用1 即使我还没有安装了 TF-agents repo。
我知道我可以使用像 from .. import module_X 这样的相对导入,并且我知道我可以禁用这些 pylint 警告,但这两个我是一半的解决方案。第一个不如from package import module_X 声明那么干净和清晰,第二个解决方案可能并没有告诉我实际上有什么问题。
我错过了什么?
1以tf_agents/agents/dqn/dqn_agent.py 为例,它能够将导入解析为tf_agents.policies
【问题讨论】:
-
如果您想使用 pylint 并删除所有警告,我建议您阅读 pylint documentation 并查看它如何进行检查并相应地进行操作
-
@sahasrara62 正如我在问题中所说,我知道我可以禁用 pylint 警告,但这不是我想要在这里做的。我希望 Pylint 警告我可能有错误的导入,但我希望它明白,一旦设置了包,这个导入语句实际上是正确的
-
这就是我说的原因,看看 pylint 如何检查导入并尝试相应地使您的项目导入
标签: python visual-studio-code package python-import pylint