如何让一个包引用另一个包,但让它看起来像引用的包属于初始包?
package_1
|
|____ __init__.py
package_2
|
|____ __init__.py
|____ module_1.py
里面 package_1.__init__.py 是
# __init__.py
import package_2
现在以下调用工作正常:
>>> import package_1
>>> print package_1
<module <module 'package_1' from '...\package_1\__init__.pyc'>
>>> from package_1 import package_2
>>> print package_2
<module 'package_2' from '...\package_2\__init__.pyc'>
>>> print package_2.module_1
<module 'package_2.module_1' from '...\package_2\module_1.pyc'>
>>> from package_2 import module_1
>>> print module_1
<module 'package_2.module_1' from '...\package_2\module_1.pyc'>
但我希望能够做到这一点:
>>> from package_1.package_2 import module_1
但我得到:
Traceback (most recent call last):
File "testfile.py", line 15, in <module>
from package_1.package_2 import module_1
ImportError: No module named package_2
我想这样做的原因是因为 package_2 曾经是 package_1 的子包。现在 package_2 是它自己的包,我希望能够从 package_1 引用它以保持以前的行为。