咱們知道,定義在環境變量PYTHONPATH裏是能夠直接用import導入的。下面咱們來操做如何從非pythonpath目錄導入第三方包或者本身定義的包。python
假定咱們的包有以下的目錄結構:person 是最頂層的包,man、woman、child是子包
shell
person\ __init__.py person.py man\ __init__.py goodman.py child\ __init__.py lovelychild.py woman\ __init__.py goodwoman.py
首先,咱們把包所在目錄(c:\testpackage)加入到sys.path路徑裏app
>>> import sys >>> sys.path.append("c:\\testpackage")
注意:路徑分隔符必定要寫成"\\"的spa
一、用import方式 導入包,此種方式必須寫全包的路徑
操作系統
>>> import person.person >>> person.person.printperson() person >>> import person.man.goodman >>> person.man.goodman.printman() man >>> import person.woman.goodwoman >>> person.woman.goodwoman.printwoman() woman >>> import person.man.child.lovelychild >>> person.man.child.lovelychild.printchild() child
二、用from * import *方式導入包code
>>> from person import person >>> person.printperson() person >>> from person.man import goodman >>> goodman.printman() man >>> from person.man.child import lovelychild >>> lovelychild.printchild() child >>> from person.woman import goodwoman >>> goodwoman.printwoman() woman
也能夠用如下方式:字符串
>>> from person import * >>> person.printperson() person >>> from person.man import * >>> goodman.printman() man >>> from person.man.child import * >>> lovelychild.printchild() child
注意:這樣的語句會導入哪些文件取決於操做系統的文件系統;因此咱們在__init__.py 中加入 __all__ 變量;該變量包含執行這樣的語句時應該導入的模塊的名字;它由一個模塊名字符串列表組成。it