您的位置:首页 > 编程语言 > Python开发

python自定义模块构建、发布及安装

2016-10-06 16:17 579 查看

1、关于setup.py

setup.py脚步的用途之一是充当可执行文件,你可以运行它来打包软件并将其上传到发布服务器上。


编写自己的自定义模块,并且希望能够开源的话,打包自己的项目是必须的。而打包的必要条件是在你的项目里面有可执行的setup.py。

2、setup.py参数说明

最常用的meta-data参数如下表:



其他重要的参数包括:

1)、packages

告诉Distutils需要处理那些包(包含init.py的文件夹)

2)、package_dir

告诉Distutils哪些目录下的文件被映射到哪个源码包,感觉好像是一个相对路径

的定义。一个例子:package_dir = {”: ‘lib’},表示以lib为主目录。

3)、ext_modules

是一个包含Extension实例的列表,Extension的定义也有一些参数。

4)、ext_package

定义extension的相对路径

5)、requires

定义依赖哪些模块

6)、provides

定义可以为哪些模块提供依赖

7)、scripts

指定python源码文件,可以从命令行执行。在安装时指定–install-script

8)、package_data

通常包含与包实现相关的一些数据文件或类似于readme的文件。

3、注册

如果你希望将自己包上传到PyPI,也就是任何人都能通过pip install安装你的包的话,需要注册并打包上传。操作步骤如下:


1)在PyPI网站注册

登录https://pypi.python.org/pypi。并注册一个账户

2)配置

配置 .pypirc文件,该文件应该位于您的主目录(根据操作系统的不同而有所变化)中。典型的 .pypirc 文件如下:

[distutils]

index-servers =

pypi

[pypi]

username:xxxxxxxxxxxxx

password:xxxxxxxxxxxxx

3)执行注册

python setup.py register

4)打包上传

python setup.py sdist upload

4、打包、发布及安装

如果你并不需要上传到pypi。那只要在你包里包含setup.py的路径下,执行:

python setup.py sdist。然后,在当前目录下,会创建dist目录,里面有个压缩文件名,这个就是可以分发的包。使用者拿到这个包后,解压后,执行python setup.py install,就会安装成功。

附录:

setup.py和pip

表面上,python setup.py install和pip install都是用来安装python包的,实际上,pip提供了更多的特性,更易于使用。体现在以下几个方面:

• pip会自动下载依赖,而如果使用setup.py,则需要手动搜索和下载;

• pip会自动管理包的信息,使卸载/更新更加方便和容易,使用pip uninstall即可。而使用setup.py,必须手动删除,有时容易出错。

• pip提供了对virtualenv更好的整合。

_init_.py

不管是打包,还是导入包,对应的包(路径)下面都必须有一个init.py文件。

init.py里面还是可以有内容的,我们在导入一个包时,实际上导入了它的init.py文件。我们可以再init.py文件中再导入其他的包,或者模块。

这样,当我们导入这个包的时候,init.py文件自动运行。帮我们导入了这么多个模块,我们就不需要将所有的import语句写在一个文件里了,也可以减少代码量。不需要一个个去导入module了。

init.py 中还有一个重要的变量,叫做 all。我们有时会使出一招“全部导入”,也就是这样:

from PackageName import *

这时 import 就会把注册在包 init.py 文件中 all 列表中的子模块和子包导入到当前作用域中来。比如:

文件 init.py

all = [“Module1”, “Module2”, “subPackage1”, “subPackage2”]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 自定义模块