Jython无法加载具有' com'作为顶级命名空间

时间:2016-11-10 06:19:15

标签: python jython jython-2.7

我在Jython site-packages目录中有一个Jython模块com.xyz.module1。目录结构如下。

Jython2.7
|---Lib
    |--site-packages
        |--com
            |--__init__.py
            |--xyz
               |--__init__.py
               |--module1
                  |--__init__.py

当我尝试在Jython解释器中导入com.xyz.module1时,抛出ImportErrorscreenshot)。但是,当我将com.xyz.module1重命名为foo.xyz.module1时,导入正常。

我已阅读Jython doc,它不鼓励(但不禁止)使用com作为顶级模块命名空间。我感兴趣的Jython库也不能重构为不使用com作为顶级命名空间。

还有其他方法可以让导入工作吗?

1 个答案:

答案 0 :(得分:0)

我不这么认为。 Python导入的工作方式与人们命名Java包的方式之间存在无法解决的冲突。

也许这过于简单化,但第一个' com'在导入期间遇到的将是唯一的' com'并且会阻止第二个' com'从进口。

因此,在命名Jython(Python)包时需要采用不同的方法。