python之import子目錄文件

問題:

 

 

在pre_tab.py文件下:

 

print("AA")
from test.te import login1
login1()

 

 

from test.te import login1
程序中此句引入當前目錄下test目錄中的te.py文件中的login1對象(方法)
可是一直報錯 importError 沒找到test.te這個模塊
 
Traceback (most recent call last):
  File "C:/Users/Administrator/PycharmProjects/laonanhai/shop_store/pre_tab.py", line 21, in <module>
    from test.te import login1
ImportError: No module named 'test.te'

 

查找緣由是test目錄下沒有建立__init__.py文件(其實默認是有建立的,但我原先刪了)
 
 

The __init__.py files are required to make Python treat the directories as containing packages; this is done to prevent directories with a common name, such as string, from unintentionally hiding valid modules that occur later on the module search path. In the simplest case, __init__.py can just be an empty file, but it can also execute initialization code for the package or set the __all__ variable, described later.python

 渣渣谷哥翻譯:
須要__init__.py文件來使Python將目錄視爲包含包; 這樣作是爲了防止具備公用名稱的目錄(例如字符串)意外隱藏模塊搜索路徑上稍後出現的有效模塊。 在最簡單的狀況下,__init__.py能夠只是一個空文件,但它也能夠執行包的初始化代碼或設置__all__變量,稍後描述。
 
 

解決方法:

在test目錄下建__init__().py文件
 
 
補充別人的見解;
  如官網所述,此文件使得這個目錄被包含到當前的python package中,
  我理解就是成爲一個module,import查找當前目錄時這個目錄能被識別了,而後import成功.
相關文章
相關標籤/搜索