怎么样将python程序及其依赖打包成rpm包部署( 二 )
其实用习惯了会觉得也不比pip差,需要跟非Python组件混合部署的时候反而会觉得简单了很多。
===================================================================
惊,今天无意中发现,setuptools写成的setup.py,有一个bdist_rpm的命令……估计不能替代完整功能的rpm,但如果只是打包一个依赖项,也许行。
■网友
python 插件打包成rpm,是比较简单的。 因为已经有官方支持详见网址:6.2 Creating RPM packagesThe usual way to create an RPM of your module distribution is to run the bdist_rpm command:python setup.py bdist_rpmor the bdist command with the --format option:python setup.py bdist --formats=rpmThe former allows you to specify RPM-specific options; the latter allows you to easily specify multiple formats in one run. If you need to do both, you can explicitly specify multiple bdist_* commands and their options:python setup.py bdist_rpm --packager="John Doe \u0026lt;jdoe@python.net\u0026gt;" \\ bdist_wininst --target_version="2.0"当然,如果你想多一点订制内容,还是要手写 SPEC 文件,然后使用rpmbuild 命令
■网友
可以考虑用pants打包成binary再放到rpm里https://pantsbuild.github.io/python-readme.html
■网友
目前采取了一个曲折的方法解决了。首先把所有项目依赖下载下来,项目本身也通过setup.py打包成tar包。在本地,新建一个build/usr文件夹,作为pip的安装目标路径,然后使用pip安装(需要指定源地址为本地路径)你的项目,将会把你的项目包及其依赖一股脑到安装到本地build/usr文件夹。安装完毕,你会看到类似build/usr/lib/python2.7/site-pakges/...这样的结构。然后开始写rpm打包脚本,指定build为根目录,最后使用rpmbuild工具打包,也可以使用jekins.将最终的rpm包通过yum install 安装到目标机器,逛逛逛!项目跑起来了!不用直接再一一安装依赖。这样的好处是,本地开发不用担心依赖包有没有现成的rpm源码包,愉快的使用pip即可。部署的时候,把以上流程写成一个自动化脚本,还是比较爽快的。注意的地方:写rpm打包脚本的时候,有一个after_remove.sh脚本,需要写卸载文件,此时,如果将你的项目源码卸载没关系,但你的项目依赖可别完全一股脑卸载了,有可能影响目标机器上的其他项目.....
推荐阅读
- 招聘都要学历,何来程序员不看学历
- 银行系统的研发岗(程序员)是不是很难进(校招)推广到国企的研发岗(程序员)呢
- 坐标合肥,请问在哪里能捕捉到程序员这种生物他们大都出现在哪里呢
- 程序猿和产品汪能愉快的一起谈恋爱嘛
- 怎样成为一名合格的Python程序员?
- 我是程序猿养了条狗,取啥名字好
- python 爬虫,咋获得输入验证码之后的搜索结果
- dart这编程语言现在发展怎么样了,语法与Java,c#很相似,甚至更简洁
- 送程序员男友苹果无线耳机还是专业品牌耳机
- 女程序媛怎样追求男程序员
