请稍候,加载中....

Python包管理

什么是包?

python的包管理就是使用目录层级方式管理模块的一种手段

python有两个类型的包:常规包与命名空间包

这里主要介绍常规包,能理解常规包,命名空间包也很好理解(常规包通过目录组织在一起,命名空间包可以通过空间命名组织在一起)

在一个目录里放上一个__init__.py文件,这个目录就会被认为是一个模块包

 


从包中导入模块

从包中导入某个模块

from package import mymodule

从包中导入模块使用别名

from package import mymodule as m

 


从子包中导入模块

每个包还可以包含若干子包,比如如下示例, 包含了subpackage1、subpackage2两个子包:

 

导入语句示例

from package.subpackage import mymodule as m
from package.subpackage.mymodule import *
from package.subpackage.mymodule  import PATH

 


导入路径注意事项

在不同包之间的模块可以相互导入,需要注意路径用法

模块的绝对导入

如果需要在package.subpackage2.pythoner模块中使用package.subpackage1.person模块中的对象

绝对导入示例

在package.subpackage2.pythoner.py文件中

from package.subpackage1.person import Person

相对导入示例

在package.subpackage2.pythoner.py文件中

from  .. subpackage1.person import Person

.. 表示父级包

. 表示当前所在包

ImportError: attempted relative import with no known parent package

此错误是因为在主文件使用了相对路径导入

相对导入不能在__name__ == '__main___'时使用,此时只能使用绝对导入,因为相对导入是通过包之间的关系来导入,在主文件中,__package__值为None

 


Python学习手册-