【问题标题】:Jython fails to load modules having 'com' as top level namespaceJython 无法加载将“com”作为顶级命名空间的模块
【发布时间】:2016-11-10 06:19:15
【问题描述】:

我在 Jython 站点包目录中有一个 Jython 模块 com.xyz.module1。目录结构如下。

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

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

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

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

【问题讨论】:

    标签: python jython jython-2.7


    【解决方案1】:

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

    也许这过于简单了,但在导入过程中遇到的第一个“com”将是唯一的一个“com”,并且会阻止导入第二个“com”。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-06
      • 2018-12-10
      • 1970-01-01
      • 2018-06-30
      • 1970-01-01
      相关资源
      最近更新 更多