[英]How to import custom python package by name
我創建了一個名為“custom_module”的文件夾,我在文件夾中有__init__.py,其中包含:
__all__ = [
'Submodule1',
'Submodule2'
]
從我閱讀的文檔中我應該能夠調用import custom_module
並獲取對包的訪問權限,但是這不會發生。 如何讓python識別我的包? 我正在使用python 3.2
更新:包不在python文件夾中。 python環境如何找到它,因此我可以通過名稱成功導入它。
您有兩個截然不同的概念: 包和模塊 。
您認為模塊是一個模塊 :包含類,變量等的Python腳本。 您可以通過其文件名導入它,然后可以訪問其命名空間中的變量。
包是一組模塊,它們在文件夾中組合在一起。 如果文件夾包含名為__init__.py
的文件,Python將允許您導入整個文件夾,就像它是一個模塊一樣。 這將運行__init__
的代碼,但不一定會導入該文件夾中的所有模塊。 (這是一個深思熟慮的設計選擇:包通常非常大,導入所有模塊可能需要很長時間。)
默認情況下,導出的唯一內容(如package.thing
)是__init__
定義的變量。 如果您希望submodule
可用作package.submodule
,則需要在__init__
導入它。
__all__
是一個相關的概念。 簡而言之,它定義了from package import *
,因為Python不容易計算出應該是什么。 你通常不需要它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.