python的包管理方式

转载 2016年05月31日 14:54:36

转自 http://hi.baidu.com/nkhzj/blog/item/a6f0df00b2c39716728b65f1.html

模块包:

包通常总是一个目录,目录下为首的一个文件便是 __init__.py。然后是一些模块文件和子目录,假如子目录中也有 __init__.py 那么它就是这个包的子包了。差不多就像这样吧:

假定我们的包的例子有如下的目录结构:
Phone/
    __init__.py
    common_util.py
    Voicedta/
        __init__.py
        Pots.py
        Isdn.py
    Fax/
        __init__.py
        G3.py
    Mobile/
        __init__.py
        Analog.py
        igital.py
    Pager/
        __init__.py
        Numeric.py

Phone 是最顶层的包,Voicedta 等是它的子包。 我们可以这样导入子包:
  1. import Phone.Mobile.Analog
  2. Phone.Mobile.Analog.dial()
你也可使用 from-import 实现不同需求的导入。

第一种方法是只导入顶层的子包,然后使用属性/点操作符向下引用子包树:
  1. from Phone import Mobile
  2. Mobile.Analog.dial('555-1212')
此外,我们可以还引用更多的子包:
  1. from Phone.Mobile import Analog
  2. Analog.dial('555-1212')
事实上,你可以一直沿子包的树状结构导入:
  1. from Phone.Mobile.Analog import dial
  2. dial('555-1212')
在我们上边的目录结构中,我们可以发现很多的 __init__.py 文件。这些是初始化模块,from-import 语句导入子包时需要用到它。 如果没有用到,他们可以是空文件。 程序员经常忘记为它们的包目录加入 __init__.py 文件,所以从 Python 2.5 开始,这将会导致一个 ImportWarning 信息。

不过,除非给解释器传递了 -Wd 选项,否则它会被简单地忽略。

包同样支持 from-import all 语句:
  1. from package.module import *
然而,这样的语句会导入哪些文件取决于操作系统的文件系统。所以我们在__init__.py 中加入 __all__ 变量。该变量包含执行这样的语句时应该导入的模块的名字。它由一个模块名字符串列表组成.。

ORACLE表空间、段、区的管理方式

一、 ORACLE表空间管理         ORACLE表空间的管理方式分为:          1.1 字典管理方式:          1.2 本地管理方式 二、 ORACLE段管理      ...
  • u013053796
  • u013053796
  • 2013年12月16日 17:20
  • 1897

软件包管理系统 v

现在的系统为何要用软件包管理系统呢? 要回答这些问题,需要了解现在的软件开发都非常讲究可重用性,也就是说一个人写的功能代码可能会以库函数的形式发布供别人使用。 最常用的就是glic函数库,它提...
  • darennet
  • darennet
  • 2014年10月26日 09:24
  • 928

为方便管理Maven中的模块,Maven提供了聚合与继承来管理

Maven中提供的聚合是,为方便对各个模块进行管理,一次性编译打包 具体操作 在MyEclipse中新建一个Maven项目,在创建的时候我们将红色标记出来的一定选中 点击Next ...
  • mexican_jacky
  • mexican_jacky
  • 2015年12月12日 12:43
  • 878

【操作系统】内存管理-基本分页管理方式

内存管理方式-基本分页管理的详细说明
  • u010095182
  • u010095182
  • 2014年05月05日 14:10
  • 1305

Linux详解之软件包管理与源

包管理与源是Linux学习中不可缺少的部分,同时也令很多初学者倍感困惑。本文整理了一些Linux相关的包管理与源方面的材料,希望对大家有帮助。 Linux中的软件包主要分为RPM软件包及DEB软件...
  • shunli0521
  • shunli0521
  • 2015年01月01日 17:12
  • 874

Oracle 段区块 分配 (1)

这篇文章是参考甲骨论老相老师的教学视频             http://v.youku.com/v_show/id_XNDAwMzYzODI0.html             所做的学习笔...
  • nvd11
  • nvd11
  • 2013年04月02日 00:58
  • 893

Windows内存管理的几种方式和优缺点

Windows内存管理方式主要分为:页式管理、段式管理和段页式管理。 页式管理的基本原理是将各进程的虚拟空间划分为若干个长度相等的页。把内存空间按页的大小划分为片或者页面,然后把页式虚拟地址与内存地...
  • SHENNONGZHAIZHU
  • SHENNONGZHAIZHU
  • 2016年07月27日 11:34
  • 1567

python模块及包的导入

一 .module 通常模块为一个文件,直接使用import来导入就好了。可以作为module的文件类型有".py"、".pyo"、".pyc"、".pyd"、".so"、".dll"。 二. p...
  • zyz511919766
  • zyz511919766
  • 2014年03月31日 17:01
  • 57563

数据科学领域常用的五个Python包

Numpy Numpy提供了两种基本的对象:ndarray和ufunc。ndarray是存储单一数据类型的多维数组,而ufunc是能够对数组进行处理的函数。Numpy的功能: N维数组,一种快速、高...
  • YEN_CSDN
  • YEN_CSDN
  • 2016年11月27日 14:39
  • 3801

Python.中模块和包的概念

Python中模块和包的概念 Table of Contents 1 模块(Module)和包(Package) 1.1 命名空间(Namespace)1.2 模块(Module...
  • huangkangying
  • huangkangying
  • 2014年06月19日 21:48
  • 3830
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python的包管理方式
举报原因:
原因补充:

(最多只允许输入30个字)