管理python包
python能跻身最欢迎编程语言前列的一个主要原因是python有着活跃的社区提供丰富的包,诸如numpy,pandas,scikit-learn等等。
python的包都存放PyPI中,PyPI即Python Package Index,是python的软件仓库。所有的python包都可以在PyPI中下载并安装。
PyPI中的每个包都对应一个URL:https://pypi.python.org/pypi/{package},通过URL直接下载就是安装;只不过这是一个手动的过程:搜索包+下载+解压+Python setup.py install
有没有自动的方式?
setuptools
一种是setuptools,提供一键安装。当然首先要先安装setuptools。setuptools可以通过https://pypi.python.org/pypi/setuptools
下载setuptools包手动安装。
安装setuptools之后,就可以运行easy_install命令安装其他的包,如
easy_install numpy
pip
pip作为setuptools的改进版,增加了对已安装包的查询和删除等管理,是当前最流行的python包管理工具。
要使用pip需要安装,可以通过PyPI下载也可以通过setuptools安装。
easy_install pip
注意:setuptools和pip都是python软件包哦。
pip提供了CLI命令,可以通过pip --help查看使用帮助
最常用例子
# 安装
pip install numpy# 卸载
pip uninstall numpy# 查看已安装包
pip list
升级pip版本
pip install pip -U
在国内pypi的网站下载可能会比较慢,可以设置其他镜像站点如清华源
可以通过 pip config 设置为默认源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
也可以每次pip install 指定源
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
另外yolk也提供了更详细的包的信息,不过不是很常用
pip install yolk3k
# 查看已经安装包
yolk -l
# 显示包注册的所有入口点
yolk --entry-map
小结
今天介绍了几种python包的管理方法, pip是最流行的方式。但是不要忘记了最原始的PyPI。
另外Anaconda 提供是常用的python的安装包,当然也包括pip。
打包python程序
当你开发完自己的python程序并通过测试后,下一步就是要打包部署你的程序。
- 如果你开发的是公共组件,供他人使用,则需要打包代码,并发布到内部共享库或者公开的PyPI
- 如果你开发的是独立组件,则打包代码,通过持续集成进行发布到线上部署
打包文件格式通常是zip包或者tar包。
之前介绍过的setuptools提供了较完善的打包和发布到公开源PyPI的过程,打包步骤如下:
- 自己程序模块,如add.py
- setup.py 设置安装相关信息
- 打包
- 发布到PyPI
- 下载安装
- 模块使用
我们以一个例子来说明上述的步骤
- 自己程序模块
一个简单的工具计算类add.py
def add(a, b):return a + b
- setup.py文件
编写setup文件,一般只要包括版本和模块,以及作者信息即可。也可以通过paste模块自动生成setup文件。
下面是一个简单的setup文件
from distutils.core import setup
setup(name='add',version='1.0',py_modules=['add'],)
paste模块通过pip install pastescript
安装,paste提供了不同的模板可以快速创建setup文件,也可以通过制定的配置文件生成,通常建议使用配置来创建
常用配置如下:
[pastescript]
description = aiweker-prj
license_name = aiweker
keywords = Python
long_description = aiweker-prj
author = aiweker
author_email = xxx@aiweker.com
url = http://aiweker.com
version = 1.0.0
paster通过create创建setup文件,模板为basic_package
paster create -t basic_package --config="aiweker-prj-setup.cfg" add
-
打包
注意上面提及的add.py模块和setup.py文件是在同一个级目录。打包执行下面命令即可打包python setup.py sdist --formats=zip,gztar
打包后在dist目录下会有两个包一个是zip包,另一个是tar.gz包
./dist |- add-1.0.tar.gz |- add-1.0.zip
-
上传到PyPI
要上传到PyPI,需要在PyPI注册一个账号- 通过
python setup.py register
注册; - 注册完之后,通过
python setup.py register -n
登录 - 通过upload 进行上传
python setup.py sdist upload
- 通过
-
安装模块和使用
直接使用以下命令安装模块
python setup.py install
import addprint(add.add(10, 4))
# 14
以上就是简单的打包发布过程,希望对你有帮助!