我在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
时,抛出ImportError
(screenshot)。但是,当我将com.xyz.module1
重命名为foo.xyz.module1
时,导入正常。
我已阅读Jython doc,它不鼓励(但不禁止)使用com
作为顶级模块命名空间。我感兴趣的Jython库也不能重构为不使用com
作为顶级命名空间。
还有其他方法可以让导入工作吗?
答案 0 :(得分:0)
我不这么认为。 Python导入的工作方式与人们命名Java包的方式之间存在无法解决的冲突。
也许这过于简单化,但第一个' com'在导入期间遇到的将是唯一的' com'并且会阻止第二个' com'从进口。
因此,在命名Jython(Python)包时需要采用不同的方法。