簡體   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