Python第三方包的导入

咱们知道,定义在环境变量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

相关文章
相关标签/搜索