详解Python编程中包的概念与管理

 更新时间:2015年10月16日 16:06:09   投稿:goldensun  
这篇文章主要介绍了Python编程中包的概念与管理,包括包管理工具pip的基本安装使用,需要的朋友可以参考下

Python中的包
包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的Python的应用环境。
考虑一个在Phone目录下的pots.py文件。这个文件有如下源代码:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
def Pots():
  print "I'm Pots Phone"

  
同样地,我们有另外两个保存了不同函数的文件:

  • Phone/Isdn.py 含有函数Isdn()
  • Phone/G3.py 含有函数G3()

现在,在Phone目录下创建file __init__.py:

Phone/__init__.py


当你导入Phone时,为了能够使用所有函数,你需要在__init__.py里使用显式的导入语句,如下:

from Pots import Pots
from Isdn import Isdn
from G3 import G3


当你把这些代码添加到__init__.py之后,导入Phone包的时候这些类就全都是可用的了。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 导入 Phone 包
import Phone
 
Phone.Pots()
Phone.Isdn()
Phone.G3()

以上实例输出结果:

I'm Pots Phone
I'm 3G Phone
I'm ISDN Phone


如上,为了举例,我们只在每个文件里放置了一个函数,但其实你可以放置许多函数。你也可以在这些文件里定义Python的类,然后为这些类建一个包。

Python的包管理工具

Distribute是对标准库disutils模块的增强,我们知道disutils主要是用来更加容易的打包和分发包,特别是对其他的包有依赖的包。
Distribute被创建是因为Setuptools包不再维护了。
安装Distribute
可以通过distribute_setup.py 脚本来安装Distribute,也可以通过easy_install, pip,源文件来安装,不过使用distribute_setup.py来安装是最简单和受欢迎的方式

$ curl -0 http://python-distribute.org/distribute_setup.py
$ sudo python distribute_setup.py


 
Pip 是安装python包的工具,提供了安装包,列出已经安装的包,升级包以及卸载包的功能。
Pip 是对easy_install的取代,提供了和easy_install相同的查找包的功能,因此可以使用easy_install安装的包也同样可以使用pip进行安装。
 
安装Pip
Pip的安装可以通过源代码包,easy_install或者脚本。
下面介绍一下各种安装方法:
源代码方式:

$ wget http://pypi.python.org/packages/source/p/pip/pip-0.7.2.tar.gz (替换为最新的包)
$ tar xzf pip-0.7.2.tar.gz
$ cd pip-0.7.2
$ python setup.py install
easy_install:
$ easy_install pip

get_pip.py 脚本:

$ curl -0 https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ sudo python get-pip.py

 
OK, 下面来看一下Pip的使用
安装package

$ pip install Markdown

列出安装的packages

$ pip freeze


安装特定版本的package
通过使用==, >=, <=, >, <来指定一个版本号。

$ pip install 'Markdown<2.0'
$ pip install 'Markdown>2.0,<2.0.3'


升级包
升级包到当前最新的版本,可以使用-U 或者 --upgrade

$ pip install -U Markdown


卸载包

$ pip uninstall Markdown


查询包

pip search "Markdown"


 
PS -- 包安装后的py文件路径:

/usr/local/lib/python2.7/dist-packages

相关文章

  • Django获取应用下的所有models的例子

    Django获取应用下的所有models的例子

    今天小编就为大家分享一篇Django获取应用下的所有models的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python探索之静态方法和类方法的区别详解

    Python探索之静态方法和类方法的区别详解

    这篇文章主要介绍了Python探索之静态方法和类方法的区别详解,小编觉得还是挺不错的,这里分享给大家,供需要的朋友参考。
    2017-10-10
  • Python导入oracle数据的方法

    Python导入oracle数据的方法

    这篇文章主要介绍了Python导入oracle数据的方法,涉及Python读取csv文件信息再插入到Oracle数据库的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • python排序算法的简单实现方法

    python排序算法的简单实现方法

    这篇文章主要给大家介绍了关于python排序算法的简单实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • django 发送邮件和缓存的实现代码

    django 发送邮件和缓存的实现代码

    这篇文章主要介绍了django 发送邮件和缓存的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Python实现自动化处理PDF文件的方法详解

    Python实现自动化处理PDF文件的方法详解

    这篇文章主要为大家详细介绍了如何使用Python完成简单的PDF文件处理操作,如PDF文件的批量合并、拆分、加密以及添加水印等,需要的可以参考一下
    2022-09-09
  • Python实现多张图片合成一张马赛克图片

    Python实现多张图片合成一张马赛克图片

    这篇文章主要介绍了了Python如何实现将多张图片合成一张马赛克图片。文中的示例代码讲解详细,对我们学习Python有一定的帮助,感兴趣的可以学习一下
    2021-12-12
  • Python代理抓取并验证使用多线程实现

    Python代理抓取并验证使用多线程实现

    这里没有使用队列只是采用多线程分发对代理量不大的网页还行但是几百几千性能就很差了,感兴趣的朋友可以了解下,希望对你有所帮助
    2013-05-05
  • Python使用turtle绘制有趣的龙年祝福动画

    Python使用turtle绘制有趣的龙年祝福动画

    这篇文章主要介绍了Python的内置库——小海龟(turtle),它是一个非常实用的绘画工具,不仅可以帮助我们绘制图形,还能让我们查看整个绘画过程,下面我们就来看看如何使用turtle绘制有趣的龙年祝福动画吧
    2024-01-01
  • 封装Detours用于Python中x64函数hook详解

    封装Detours用于Python中x64函数hook详解

    Detours是微软发布的一个API hook框架,同时支持x86和x64,看文档说也支持ARM和ARM64的Windows,这篇文章主要介绍了封装Detours用于Python中x64函数hook,需要的朋友可以参考下
    2023-12-12

最新评论