简单使用setup.py来安装Python项目

简单使用setup.py来安装Python项目,第1张

概述最近做个一个项目需要用到setup.py 这个构建工具来进行项目的便捷安装,把搜集到的一些资料加上个人理解整理成文章,如有错误的地方请各位大佬及时指出,小弟马上修改,下面正式进入setup.py的描述讲解. 1.因为我们要用setup.py来将我们的项目打包成一个Python包,所以首先我们需要创建一个包文件夹,该包的命名依照以下包版本的命名格式:   N.N[.N]+[{a|b|c|rc}N[.

最近做个一个项目需要用到setup.py 这个构建工具来进行项目的便捷安装,把搜集到的一些资料加上个人理解整理成文章,如有错误的地方请各位大佬及时指出,小弟马上修改,下面正式进入setup.py的描述讲解.

1.因为我们要用setup.py来将我们的项目打包成一个Python包,所以首先我们需要创建一个包文件夹,该包的命名依照以下包版本的命名格式:

  N.N[.N]+[{a|b|c|rc}N[.N]+][.postN][.devN]

    解释:

  "N.N": 必须的部分,两个"N" 分别代表了主板本和副版本号.

  "[.N]": 次要版本号,可以有零或多个.

  "{a|b|c|rc}": 阶段代号,可选,a,b,c,rc  分别代表Alpha,beta,candIDate 和 release candIDate.

  "N[.N]": 阶段版本号,如果提供,则至少有一位主版本号,后面可以加无限多位的副版本号.

  ".postN": 发行后更新版本号,可选.

  ".devN": 开发期间的发行版本号,可选.

 注意: 上面涉及到的命名中的英文字母尽量全是小写(我测试的时候是全用的小写没有出现什么问题,这个根据具体情况定吧).

2.包的版本号确定之后,需要弄清楚包里面应该包含那些文件,一个标准的包里面应该包含CHANGES.rst,liCENSE,MANIFEST.in,README.rst,setup.py,setup.cfg,src(含有__init__.py 文件的文件夹),可能有的文章还会介绍有别的文件,但是有这些文件基本上不会出现什么问题.

3.介绍完包中的文件之后,我们来看一下每个文件具体的作用.

  MANIFEST.in : 里面就是需要包含在分发包中的文件,也就是需要把要查找的分发的包的路径写上,例如:    

    

1 include MANIFEST.in 2 recursive-include src/*
VIEw Code

  setup.cfg : 文件主要用于提供setup.py 的默认参数,我用到的是填上了pip 镜像源的地址,如果有其他的需要,可以参考https://docs.python.org/3/distutils/configfile.html    

    

[easy_install]Index_url = http://pypi.douban.com/simple
VIEw Code

  src : 该文件夹里面含有__init__.py 文件,还应该含有需要打包的源代码,主要用于setup.py 文件中的packages: find_packages() 这个参数.

  setup.py : 主要写需要安装的包的一些配置信息,这里主要介绍一下里面常用到的一些基本的参数:

    name : 包的名称,以后查找的时候需要根据此名称查询.

    version : 包的版本号.

    license : 程序的授权许可信息.

    description : 程序的简单描述.

    long_description : 程序的详细描述.

    auther : 程序的作者.

    auther_email : 程序作者的邮箱.

    packages : 需要处理的包目录 (包含__init__.py 文件的文件夹),一般可以采用find_packages() 这个函数,它会默认在和setup.py 同一目录下搜索各个含有__init__.py 的包,也可以排除一些特定的包,find_packages(exclude=[" *.text",....]).

    install_requires : 需要安装的依赖包,这个的值应该是一个List列表.

    download_url : 程序的下载地址.

    package_data : 指定包内需要包含的数据文件.

    data_files : 打包时需要打包的数据文件,如图片,配置文件等.

    setup_requires : 指定运行setup.py 这个文件本身所依赖的包.

    include_package_data : 该参数设置为True 时,自动添加包中受版本控制的数据文件.( 这个我也没有太搞懂,不过一般都会设置成True,有大神明白的可以教教我,感谢! )

    zip_safe : 该参数决定了包是否作为一个zip压缩后的egg 文件安装,还是作为一个以 .egg 结尾的目录安装. 因为有些工具不支持zip压缩文件,而且压缩后的包也不方便调试,所以建议将其设置为False.

    entry_points : 发现动态服务和插件,在entry_points 中,console_scripts 指明了命令行工具的名称,如下面的代码示例一样,等号前面指明了工具包的名称,等号后面的内容指明了程序的入口地址,这里可以有多条记录,这样一个项目就可以制作多个命令行工具了.当我们想要启动对应的程序时,只需要输入等号前面的工具包的名称即可.  

      

 1 setup( 2     # ..... 3     entry_points={ 4         "console_scripts": [ 5              "service_name=service.main", 6              ..................... 7          ]    8     }    9 10 )    
VIEw Code

4.以上的我整理的内容就可以完成一般常规项目的setup.py 文件的制作了,如果需要添加具体别的功能参数可以参考以下网站:

  http://blog.konghy.cn/2018/04/29/setup-dot-py/

  https://docs.python.org/3/distutils/setupscript.html

总结

以上是内存溢出为你收集整理的简单使用setup.py来安装Python项目全部内容,希望文章能够帮你解决简单使用setup.py来安装Python项目所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1195686.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存