2017-02-15 108 views
0

爲什麼我有一個 '未定義bdir模塊' 的錯誤,這裏是我的目錄,無法導入模塊在Python

a.py

bdir-> bdir> module.py

在a.py

from bdir import * 
+0

是頂級bdir中的a.py? – ToxicTeacakes

+0

a.py與第一個bdir相同,第二個bdir得到/__init__.py, –

+0

哪個'bdir'?第一個還是第一個呢? –

回答

0

__init__.py文件(甚至爲空)放入您的bdir文件夾中。

0

文件夾內沒有__init__.py文件的任何文件夾都不被視爲模塊。此外,如果您想從模塊中獲取import *,請確保將所需的東西實際導入__init__.py或聲明__all__列表。

此外,如果您想要導入一個相對,這意味着您要從模塊當前所在的包中導入文件,然後執行相對導入。因此,舉例來說,如果您有:

bdir 
    - bdir 
    - __init__.py 
    - module.py 
    - a.py 

爲了從bdir.module輸入任何東西,你必須導入它像這樣,如果你是在a.py

from .module import * 

如果bdir模塊外然後:

from bdir.module import * 
0

您必須創建一個__init__.py文件,這是Python的知道哪些文件夾是可以用012來導入包。這裏的documentation

__init__.py文件都需要使Python視該 目錄爲一個包;這樣做是爲了防止 具有通用名稱(例如字符串)的目錄從無意中隱藏有效模塊,這些模塊在模塊搜索 路徑後面(更深)發生。在最簡單的情況下,__init__.py可以只是一個空文件,但 它也可以執行包的初始化代碼或設置變量的 __all__變量。