python安装rpm包

modpythonrpm包(怎样将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中,mod

英文解释是:

mod_python is an Apache HTTP Server module that integrates the Python programming language into the Apache server.

中文是:

mode_python,是个模块,是Apache HTTP 服务器的中的模块;

与此相对应的是,Apache HTTP服务器,还有很多其他模块,用来实现其他功能。

而mode_python,是用来,使得Apache支持Python语言,这样,你就可以在Apache中运行python代码了(否则是没法运行的)

所以,mode_python,本来也就不是Python语言的中的东西。

所以,烦请以后问问题的时候,不清楚的话,不要随便下结论,这样容易误导自己和别人,OK?

4.升级python2.7.5 后怎么rpm

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

1.下载Pyhon,选择下载Gzipped source tar ball (2.7.6) (sig)网址https://www.python.org/download/releases/2.7.62.解压安装,命令如下tar -xvf Python-2.7.6.tgzcd Python-2.7.6./configure --prefix=/usr/local/python2.7makemake install3.创建链接来使系统默认python变为python2.7ln -fs /usr/local/python2.7/bin/python2.7 /usr/bin/python4.查看Python版本python –V5.修改yum配置(否则yum无法正常运行)vi /usr/bin/yum将第一行的#!/usr/bin/python修改为系统原有的python版本地址#!/usr/bin/python2.6。

5.请问哪有支持mod

九州我以前买过一个月,但存在的安全问题不得不考虑.九州的确可以支持python,php,perl,。

客服也还行,但安全方面还没做好,脚本支持都采用apache的mod形式,文件上传后默认是666,文件所有者是客户的,但,所属的组确是一个公共组.试着把文件权限改成700,打开网页,报以下错误:failed to open stream: Permission denied in Unknown on line 0没有权限执行,这说明执行程序的不是虚拟主机用户,而是组用户.刚好所有虚拟主机用户都是在同一个组,呵呵。懂一点linux/unix的用户应该都知道我想说什么。

[; 本帖最后由 mystic168 于 2007-9-13 16:23 编辑 ]。

modpythonrpm包

转载请注明出处编程代码网 » python安装rpm包

资讯

python中国镜像(怎么python打包docker镜像)

阅读(0)

本文主要为您介绍python中国镜像,内容包括如何制作一个定制的Python基础Docker镜像,怎么python打包docker镜像,Python中range函数如何表示1到正无穷望大神解答谢啦

资讯

matlab与python接口(如何实现python与matlab连接)

阅读(0)

本文主要为您介绍matlab与python接口,内容包括如何实现python与matlab连接,如何实现python与matlab连接,Python跟Matlab有什么区别和联系呢?。Python调用Matlab实现混合编程http://www.tuicool.com/articles/2eEZ7fPython与Mat

资讯

免费的python开发工具(python编程软件有什么)

阅读(0)

本文主要为您介绍免费的python开发工具,内容包括有没有免费的pythonide工具推荐,python编程软件有什么,值得推荐的Python开发工具。Python开发软件可根据其用途不同分为两种,一种是Python代码编辑器,一种是Python集成开发工具,两者的配合使用

资讯

python3的urllib爬虫(python3.x中的urllib.request怎么用)

阅读(0)

本文主要为您介绍python3的urllib爬虫,内容包括python爬虫urllib和requests的区别,python3爬虫urllib.request.urlopen("网址").read()本来是utf8,,pythonurllib怎么用。python 3.x中的urllib.request怎么用# -*- coding: utf-8 -*-str_=ss

资讯

vs2010配置python(VS2010中Python的可视化编程如何实现??)

阅读(0)

本文主要为您介绍vs2010配置python,内容包括VS2010中Python的可视化编程如何实现??,visualstudio怎么配置python,visualstudio可以搭建python吗。pyqt开发我们都是用eric4的。所以也不需要手动生成py文件了,一键编译。vs2010用来做.net, c++

资讯

python3官方(如何安装pipwindows)

阅读(1)

本文主要为您介绍python3官方,内容包括如何windows上安装python3python,python3安装numpy,Scrapy,如何安装pipwindows。python2中pip的安装下载 setuptools 注意对应 Python 的版本,完成后运行 exe 即可完成安装 setupto

资讯

pythondockerfile(怎么python打包docker镜像)

阅读(0)

本文主要为您介绍pythondockerfile,内容包括怎么python打包docker镜像,怎样在Python中操作Docker容器,dockerfile是什么文件。当想让一个容器做两件事情,或者使一个Docker镜像包含来自两个不同镜像的依赖库时,就需要知道每个镜像的Dockerfile

资讯

sublimepython高亮(sublime语法高亮怎么自定义)

阅读(0)

本文主要为您介绍sublimepython高亮,内容包括如何在博客中使用SublimeText风格的代码高亮样式,sublime语法高亮怎么自定义,sublimetext3怎么设置高亮。方法如下:找到sublime text 3的软件,启动打开,鼠标移至菜单栏点击“file”“open file”,打

资讯

pythonscrapy分布式(如何用python构建一个简单的分布式系统)

阅读(1)

本文主要为您介绍pythonscrapy分布式,内容包括scrapy分布式怎么实现,scrapy适合分布式爬虫吗,如何用Python写一个分布式爬虫。从GitHub中整理出的15个最受欢迎的Python开源框架。这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等

资讯

geojsonpython(如何生成geojson格式的tiles)

阅读(0)

本文主要为您介绍geojsonpython,内容包括如何生成geojson格式的tiles,如何生成geojson格式的tiles,json和geojson有什么区别。转载自 需下载的工具有:python:python-2.6Python Setup tools :setuptools-0.6c11.w

资讯

pythonenvelopes(python中return到底什么意思)

阅读(0)

本文主要为您介绍pythonenvelopes,内容包括python中return到底什么意思,python中class.函数()和class.函数的区别是什么?,python中return的用法与作用。return,就是函数返回传。每一个函数都必须有一个返回值的,如果函数中没有写return,默认返

资讯

python官方教程中文(刚开始学openERP+Python,如何快速入门?)

阅读(1)

本文主要为您介绍python官方教程中文,内容包括刚开始学openERP+Python,如何快速入门?,怎样用Windows入门Python,python基础教程。0.Python简明教程下载地址:python简明教程中文.pdf很简洁的一本教材,就算没有基础,你也可以像读小说一样,花半天