繁体   English   中英

从Python 3中的“子目录”导入模块

[英]Importing modules from a “sub-sub-directory” in Python 3

我有一个目录树,看起来像以下内容(使用tree可视化):

.
├── __init__.py
└── testsubdir
    ├── __init__.py
    └── testsubsubdir
        ├── __init__.py
        └── __init__.pyc

主目录中的__init__.py包含命令import testsubdir ,而testsubdir中的__init__.py包含import testsubsubdir 我注意到的是,这在Python 2.7中有效,但在Python 3.5中无效:

kurt@kurt-ThinkPad:~/Documents/Scratch/testdir$ python __init__.py
kurt@kurt-ThinkPad:~/Documents/Scratch/testdir$ python3 __init__.py
Traceback (most recent call last):
  File "__init__.py", line 1, in <module>
    import testsubdir
  File "/home/kurt/Documents/Scratch/testdir/testsubdir/__init__.py", line 1, in <module>
    import testsubsubdir
ImportError: No module named 'testsubsubdir'

我正在努力将一些源代码从Python 2“翻译”到Python 3,其中包含与上述类似的import语句。 在Python 3中实现此目的的最佳方法是什么?

这个类似问题的答案建议使用相对导入:

在顶层__init__.py

from . import testsubdir

testsubdir/__init__.py

from . import testsubsubdir

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM