设为首页 收藏本站
查看: 404|回复: 0

[经验分享] python的setup.py文件及其常用命令

[复制链接]

尚未签到

发表于 2017-5-3 08:34:52 | 显示全部楼层 |阅读模式
  编写setup.py文件,获取帮助:python setup.py --help-commands

Standard commands:
build             build everything needed to install
build_py          "build" pure Python modules (copy to build directory)
build_ext         build C/C++ extensions (compile/link to build directory)
build_clib        build C/C++ libraries used by Python extensions
build_scripts     "build" scripts (copy and fixup #! line)
clean             clean up temporary files from 'build' command
install           install everything from build directory
install_lib       install all Python modules (extensions and pure Python)
install_headers   install C/C++ header files
install_scripts   install scripts (Python or otherwise)
install_data      install data files
sdist             create a source distribution (tarball, zip file, etc.)
register          register the distribution with the Python package index
bdist             create a built (binary) distribution
bdist_dumb        create a "dumb" built distribution
bdist_rpm         create an RPM distribution
bdist_wininst     create an executable installer for MS Windows
upload            upload binary package to PyPI
check             perform some checks on the package
Extra commands:
rotate            delete older distributions, keeping N newest files
develop           install package in 'development mode'
setopt            set an option in setup.cfg or another config file
saveopts          save supplied options to setup.cfg or other config file
egg_info          create a distribution's .egg-info directory
install_egg_info  Install an .egg-info directory for the package
alias             define a shortcut to invoke one or more commands
easy_install      Find/get/install Python packages
bdist_egg         create an "egg" distribution
test              run unit tests after in-place build

  

  standard commands(标准命令)是distutils内建命令,而Extra commands(附加命令)是像
  setuptools这样的第三方包创建的。
  命令详解:

1.sdist:用来创建一个源码包,在windows下为zip格式,linux下为tag.gz格式 。

setup.py示例:

from setuptools import setup

setup(name='xxx',version='0.1.1')

打包命令:python setup.py sdist

distutils将浏览包的路径,查找包含在档案中的文件,包括:

1)所有py_modules、packages和scripts选项隐含的python源文件

2)所有在ext_modules选项中列出的C源文件

3)符合test/test*.py模式的文件

4)README、README.txt、setup.py和setup.cfg文件
  

如果需要包含更多文件,那么可以使用MANIFEST.in文件模版,示例如下:

include xx.txt

include yy/xx.txt

....

2.bdist_egg:用来创建一个二进制分发版本,经常用来替代基于bdist生成的模式
  

3.install:安装包到python中。另外,他还可能会安装在setup.py中的install_requires定义的
  相关模块,例如:
  install_requires=['...','...']
  删除一个包:1)删除这个包所创建的文件,2)删除在site-packages文件夹easy-install.pth文
  件中列举的所有引用。
  

4.develop:编译并且在适当的位置安装包,然后添加一个简单的链接到python site-packages文
  件夹中,可以使用显式的-u选项删除包,例如:

python setup.py develop

python setup.py develop -u

使用该方式比其他方式安装包更好一些
  5.创建一个新命令:这是由setuptools引入的,是一种将包定义为插件的简单方法,示例:

...entry_points='''

[distutils.commands]

my_command=my.command.module.Class

'''

  6.打包时将其他类型的文件一起打包
  distutils默认是不会打包py文件以外的文件的,解决办法为在setup.py中加入:

setup(
name = 'srcDetect',
version = '0.1.0',
packages=find_packages(),
#include_package_data = True,
package_data = {'':['*.txt']},  #这里将打包所有的txt文件
license = 'GPL',
keywords = 'test api mydemo',
platforms = "Independant",
url = '',
data_files=[('d:\\a',['srcDetect/a.txt'])],   #安装包的时候执行,会将a.txt拷贝到d盘下的a文件夹中
)
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-372308-1-1.html 上篇帖子: 使用python遍历文件夹将word转为html 下篇帖子: Python六大开源框架对比:Web2py略胜一筹
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表