gpt4 book ai didi

具有重叠包结构的 PYTHONPATH hell

转载 作者:太空宇宙 更新时间:2023-11-03 15:28:23 25 4
gpt4 key购买 nike

我在 Windows XP 上使用 PythonPath 时遇到问题,我想知道我是否做错了什么。

假设我有一个项目(使用 Pydev 创建)有一个 src 目录。在 src 下,我有一个名为 common 的包,其中有一个名为 service.py 的类模块,类名 >服务

现在假设我有另一个项目(也是用 Pydev 创建的)有一个 src 目录和一个公共(public)包。在通用包中,我有一个导入服务的脚本 client.py

换句话说,两个不同的磁盘位置,但相同的包。

我注意到,即使我将 PYTHONPATH 设置为包括两个 src 目录,导入也会失败,除非文件都在同一目录中。我得到了可怕的没有找到模块。

我是否误解了 python 如何解析模块名称?我已经习惯了 Java 和它的类路径 hell 。

最佳答案

如果您真的必须有这样的拆分包,请阅读模块级属性 __path__。

简而言之,将其中一个“src”目录作为主要目录,并为其提供一个 __init__.py 将其他“src”的路径附加到 __path__ 列表中。在查找“src”的子模块时,Python 现在会在这两个地方查找。

不过,我真的不建议长期这样做。如果你四处移动东西,它有点脆弱并且会破裂。

关于具有重叠包结构的 PYTHONPATH hell ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3346482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com