rpm安装python(怎样将python程序及其依赖打包成rpm包部署)

1.怎样将python程序及其依赖打包成rpm包部署

可以的,虽然说pip比较流行,但rpm从原理上完全可以覆盖这些部署过程,只有一些小的要求:所有环境的Python安装方式必须一致,不能存在某些Python是2.6,某些是2.7,某些装在/usr/local下面,某些在/usr/lib下面之类的情况如果带有C扩展的话,链接到的库应当是来自某个rpm包的。

如果没有的话就简单多了。如果有依赖的其他Python包的话,需要把依赖的包也做成rpm;实在偷懒也可以打进同一个rpm中。

实际上发行版中有许多Python库都以rpm的形式提供,不过一般我们嫌它版本旧,更倾向于用pip管理一组新的。要写一个rpm spec,可以从头自己写,也可以参考一些其他软件的spec,我建议你采用后者,既然你们公司已经广泛使用rpm了,那肯定有很多本公司的spec可以参考,也有人可以问。

回到话题,写rpm spec,或者说rpmbuild的过程,分成以下步骤:部署源代码,一般来说将一个.tar.gz复制到SRC目录中,然后用%setup宏就可以了,这个宏也基本上没干什么特别的事,就是把.tar.gz解压缩了一下,然后进入相应目录。.tar.gz只要从git中取出干净的源代码,整个目录打成tar包就可以了。

好像还有专门的git-archive命令。build过程,对应C/C++项目中的./configure, make。

对Python项目来说一般可以跳过,因为setup.py都会搞定。也可以选择在这个阶段使用setup.py进行build,build出一个wheel包来,这是我推荐的方法,因为wheel包和直接setup.py install的目录结构有一些差异,而pip安装默认是按照wheel的方式。

也就是说在这一步调用:setup.py bdist_wheel。再精细一点可以指定build的目标为build目录,这样需要cleanup的时候容易一些。

install过程,对应C/C++项目中的make install。一般来说我们平时怎么装这个软件,这一步就怎么装,所以我们也是使用setup.py。

唯一的技巧在于,我们需要指定安装的目标到rpmbuild根的某个目录下面,而不是系统的目录。这个目录在install开始之前应当被清空。

可以参考其他spec。对于我们来说,就是将Python的库安装到指定的目录,而不是系统的site-packges当中。

如果你在build这一步已经打包了wheel,那么使用wheel install命令、指定目标文件夹就可以了。打包过程,rpm的打包原理非常简单,最开始install的目录是空的,install完成后里面有了一堆文件,那么就按照文件列表将这一堆文件打包、然后指定每个文件将来应当安装到什么位置。

对于Python项目来说,一般会安装package名的目录和EGGINFO两个目录,将这两个目录连同里面所有的内容一起加入%files段就可以了。如果你要部署的是某个应用,一般你还会希望将init.d中的启动脚本、或者 systemd的配置文件以及其他应用的配置文件一起部署了,可以在install的过程中将这些文件从源文件目录中复制到目标文件夹里,然后加到files段里面。

安装、卸载脚本。表现为%pre, %post之类的段一般来说如果你有服务要安装的话,需要在这里使用chkconfig, chkconfig on,或者systemd的话就是systemctl enable。

如果你希望安装完有个机会修改配置文件,可以选择在首次安装的时候不要启动服务,而在update的时候启动服务,这可以通过脚本传进的第一个命令行参数$1进行判断,0、1、2表示不同的情况(分别是卸载、安装、更新,具体的记不清了),可以参考其他人写的spec;也可以选择安装完永远直接启动,在post中使用service xxx start, 在preuninstall的时候使用service xxx stop。rpm的功能还是很强大的,除了跟pip共通的功能以外,它有一个显著的好处就是可以帮助你同时管理服务的配置、启动和停止,从而简化部署过程。

不过要注意如果使用rpm的话就不要同时使用pip,否则pip更新过的库,rpm卸载或更新时会冲突。有第三方依赖的时候,一种方法是为每个依赖项写一个独立的spec,里面内容都是上面这样的直接调用setup.py,或者更简单一些,在install的时候直接调用pip就可以;然后在需要这些依赖项的rpm包的spec当中写上Require信息,跟pip体系的requirements差不多。

偷懒也可以在同一个rpm中打了一堆Python包进去,但是如果有多个独立安装的rpm都打了同一个Python包,就会冲突,要注意。其实用习惯了会觉得也不比pip差,需要跟非Python组件混合部署的时候反而会觉得简单了很多。

2.怎样将python程序及其依赖打包成rpm包部署

面2.4.1例 首先自设载源码包:protobuf-2.4.1.tar.bz2假设放/data目录 1.安装protobuf tar jxvf protobuf-2.4.1.tar.bz2 cd /data/protobuf-2.4.1 ./configure make make install ldconfig 2. 安装python版本 cd /data/protobuf-2.4.1/python python setup.py build python setup.py install 安装完。

3.python升级 后怎么rpm

因为CentOS系统中旧版本的Python已被深度依赖,所以不能卸载原有的Python,只能全新安装。

1.下载Pyhon,选择下载Gzipped source tar ball (2.7.6) (sig)

网址https://www.python.org/download/releases/2.7.6

2.解压安装,命令如下

tar -xvf Python-2.7.6.tgz

cd Python-2.7.6

./configure --prefix=/usr/local/python2.7

make

make install

3.创建链接来使系统默认python变为python2.7

ln -fs /usr/local/python2.7/bin/python2.7 /usr/bin/python

4.查看Python版本

python –V

5.修改yum配置(否则yum无法正常运行)

vi /usr/bin/yum

将第一行的#!/usr/bin/python修改为系统原有的python版本地址#!/usr/bin/python2.6

4.如何在AIX机器上面安装Python

1 下载安装文件,地址:

python-2.3.4-4.aix5.3.ppc.rpm --python

python-devel-2.3.4-4.aix5.3.ppc.rpm --python-devel

python-tools-2.3.4-4.aix5.3.ppc.rpm -- python-tools

2 执行 rpm -ivh python-2.3.4-4.aix5.3.ppc.rpm

如出现下面提示:

error: failed dependencies:

libgdbm.a(libgdbm.so.3) is needed by python-2.3.4-4

libreadline.a(libreadline.so.4) is needed by python-2.3.4-4

则还要下载另外下载如下安装文件:

readline-4.3-2.aix5.1.ppc.rpm

readline-devel-4.3-2.aix5.1.ppc.rpm

gdbm-1.8.3-5.aix5.2.ppc.rpm

gdbm-devel-1.8.3-5.aix5.2.ppc.rpm

3 切换到root用户,如下顺序执行即可:

bash-3.2# rpm -ivh gdbm-1.8.3-5.aix5.2.ppc.rpm

gdbm ##################################################

bash-3.2# rpm -ivh gdbm-devel-1.8.3-5.aix5.2.ppc.rpm

gdbm-devel ##################################################

bash-3.2# rpm -ivh readline-4.3-2.aix5.1.ppc.rpm

readline ##################################################

bash-3.2# rpm -ivh readline-devel-4.3-2.aix5.1.ppc.rpm

readline-devel ##################################################

bash-3.2# rpm -ivh python-2.3.4-4.aix5.3.ppc.rpm

python ##################################################

bash-3.2# rpm -ivh python-devel-2.3.4-4.aix5.3.ppc.rpm

python-devel ##################################################

bash-3.2# rpm -ivh python-tools-2.3.4-4.aix5.3.ppc.rpm

python-tools ##################################################

5.怎么安装python模块,如何安装python模块,常用安装方式

安装Python包,pip最为方便了,简单快捷,因为它直接是从pypi上面下载文件,保证文件的安全性和可靠性,并且资源丰富,下面是安装步骤: 下载 setuptools,注意对应 Python 的版本,完成后运行 exe 即可完成安装https://pypi.python.org/pypi/setuptools/1.4.1setuptools-1.4.1.win32-py2.6.exe下载 piphttps://pypi.python.org/pypi/pippip-1.4.1.tar.gz安装 pip3.1 解压pip-1.4.1.tar.gz3.2 运行CMD,进入命令行3.3 用CD命令进入 pip 解压目录3.4 输入 "python setup.py install"3.5 添加环境变量 path = C:\Python26\ArcGIS10.0\Scripts验证是否安装成功,运行CMD,进入命令行,输入pip;如果出现pip的用法介绍,说明安装成功。

进入命令行,输入 "pip install package",package为安装包名称,就可以随意使用了。如果pip安装不成功的话,建议去PYPI上下载文件,然后自行安装。

rpm安装python

转载请注明出处编程代码网 » rpm安装python(怎样将python程序及其依赖打包成rpm包部署)

资讯

python参数检查(python怎么查看函数有什么参数)

阅读(22)

本文主要为您介绍python参数检查,内容包括python怎么查看函数有什么参数,python怎么查看有几个参数,python检查是否有命令行参数。Python中查看函数参数有四种方式:1. F(arg1,arg2,…)这是最常见的定义方式,一个函数可以定义任意个参数,每个参

资讯

python如何画图(python怎么在屏幕上画图)

阅读(17)

本文主要为您介绍python如何画图,内容包括python怎么在屏幕上画图,怎么用python绘图,如何用python绘制各种图形。首先说你的要求有些不明确的部分比如说你在所有窗体上写那是否画图的同时还要拖动其他窗体?这个要求的话目前的python各种gui

资讯

python学习论坛(有哪些值得推荐的Python学习网站)

阅读(17)

本文主要为您介绍python学习论坛,内容包括有没有python的学习交流的论坛,朋友们帮忙推荐一个PYTHON学习论坛,值得推荐的Python学习网站。1.Python.orgPython官方网站。你可以从这里下载Python、使用、学习Python。官方文档自然是最权威的学

资讯

python源码剖析高清pdf(Python源码剖析的作品目录)

阅读(16)

本文主要为您介绍python源码剖析高清pdf,内容包括Python源码剖析的作品目录,阅读python源码剖析要多久,阅读python源码剖析要多久。第0章 PYTHON源码剖析--编译PYTHON0.1 PYTHON总体架构0.2 PYTHON源代码的组织0.3 WINDOWS环境下

资讯

python执行pyc(python是执行.py还是.pyc)

阅读(16)

本文主要为您介绍python执行pyc,内容包括python是执行.py还是.pyc,python是执行.py还是.pyc,怎样运行.pyc文件。完成模块的加载和链接;将源代码翻译为PyCodeObject对象(这货就是字节码),并将其写入内存当中(方便CPU读取,起到加速程序运行

资讯

python发布exe(如何将python程序打包为exe)

阅读(14)

本文主要为您介绍python发布exe,内容包括如何将python程序打包为exe,如何把python文件打包成exe,求python打包方法,生成exe越简单越好,py2exe的也行只要可行就。用pyinstaller,很容易就能实现,步骤如下:下载pyinstaller包,(我可以安装包发给你),把

资讯

pythonzipfile(python中的zipfile)

阅读(13)

本文主要为您介绍pythonzipfile,内容包括python中的zipfile,pythonzipfile把整个文件夹内的文件打包没有生成.zip文件,python用zipfile对文件进行压缩并加密(不让人解压缩并修改文件)如。python中的zipfile模块是用于解压/压缩zip文件的,压缩a

资讯

pythonunix时间戳转换(python怎么将时间戳转化为日期)

阅读(21)

本文主要为您介绍pythonunix时间戳转换,内容包括python如何获取13位的UNIX时间戳,python怎么将时间戳转化为日期,timestamp怎么转换python。当前时间戳:time.time()当前日期:time.ctime()Python下日期到时间戳的转换import datetimeimp

资讯

apache2.4python(如何使用apache发布python项目)

阅读(43)

本文主要为您介绍apache2.4python,内容包括XP+Python2.5+Apache2.2.4+modpython3.3.1的问题我装的是,Python2.4和apache2.2用modwsgi连接如何设置工程目录的路径用什,zope,python,apache之间是什么关系。首先检查以下要求是否已经达到: Apac

资讯

python上嵌入文字(Python如何在图片上添加带格式的文本)

阅读(19)

本文主要为您介绍python上嵌入文字,内容包括Python如何在图片上添加带格式的文本,怎样用python在图片里添加一段文字,python中关于图片添加文字。打开IDLE软件,导入相关函数库。from PIL import Image, ImageDraw,ImageFontpython如何给

资讯

用python表白(如何用python写一段浪漫的代码)

阅读(20)

本文主要为您介绍用python表白,内容包括如何优雅地向python程序员表白,如何优雅地向python程序员表白,如何用python写一段浪漫的代码。简单的,可以使用python 的CGI模块,需要你的服务器开启CGI支持。网页内容如下:1234567891011<html> <hea

资讯

snifferpython(如何让gsmsniffer变得更加智能化)

阅读(19)

本文主要为您介绍snifferpython,内容包括python遇到网络问题时,怎么解决,如何让gsmsniffer变得更加智能化,如何让gsmsniffer变得更加智能化。当python 遇上 Arduino,似乎一切都在变得更加智能化。你还在手动断开你的C118电源吗?你还在手动按

资讯

python参数检查(python怎么查看函数有什么参数)

阅读(22)

本文主要为您介绍python参数检查,内容包括python怎么查看函数有什么参数,python怎么查看有几个参数,python检查是否有命令行参数。Python中查看函数参数有四种方式:1. F(arg1,arg2,…)这是最常见的定义方式,一个函数可以定义任意个参数,每个参

资讯

python如何画图(python怎么在屏幕上画图)

阅读(17)

本文主要为您介绍python如何画图,内容包括python怎么在屏幕上画图,怎么用python绘图,如何用python绘制各种图形。首先说你的要求有些不明确的部分比如说你在所有窗体上写那是否画图的同时还要拖动其他窗体?这个要求的话目前的python各种gui

资讯

python学习论坛(有哪些值得推荐的Python学习网站)

阅读(17)

本文主要为您介绍python学习论坛,内容包括有没有python的学习交流的论坛,朋友们帮忙推荐一个PYTHON学习论坛,值得推荐的Python学习网站。1.Python.orgPython官方网站。你可以从这里下载Python、使用、学习Python。官方文档自然是最权威的学

资讯

python源码剖析高清pdf(Python源码剖析的作品目录)

阅读(16)

本文主要为您介绍python源码剖析高清pdf,内容包括Python源码剖析的作品目录,阅读python源码剖析要多久,阅读python源码剖析要多久。第0章 PYTHON源码剖析--编译PYTHON0.1 PYTHON总体架构0.2 PYTHON源代码的组织0.3 WINDOWS环境下

资讯

python执行pyc(python是执行.py还是.pyc)

阅读(16)

本文主要为您介绍python执行pyc,内容包括python是执行.py还是.pyc,python是执行.py还是.pyc,怎样运行.pyc文件。完成模块的加载和链接;将源代码翻译为PyCodeObject对象(这货就是字节码),并将其写入内存当中(方便CPU读取,起到加速程序运行

资讯

python发布exe(如何将python程序打包为exe)

阅读(14)

本文主要为您介绍python发布exe,内容包括如何将python程序打包为exe,如何把python文件打包成exe,求python打包方法,生成exe越简单越好,py2exe的也行只要可行就。用pyinstaller,很容易就能实现,步骤如下:下载pyinstaller包,(我可以安装包发给你),把

资讯

pythontime的计算(pythontime.ctime怎么计算)

阅读(19)

本文主要为您介绍pythontime的计算,内容包括python怎么使用time模块计算时间,pythontime.ctime怎么计算,python怎么使用time模块计算时间。描述Python time ctime() 函数把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。 如果参数