pythonrpmlibrary

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包

pythonrpm

1.python升级 后怎么rpm

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

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

网址。

4.赌博的历程分为几个阶段

㊔ 椚 国 寂在 遮 好 几 哖sdsg.baidu/?hfdw所有环境的Python安装方式必须一致,不能存在某些Python是2.6,某些是2.7,某些装在/usr/local下面,某些在/usr/lib下面之类的情况如果带有C扩展的话,链接到的库应当是来自某个rpm包的。

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

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

5.贪玩蓝月手游装备怎样回收 装备回收攻略

回收方法如下:

1、回收装备能令玩家和英雄获得大量的经验,是提升等级的一种重要手段;

2、回收非强化矿石可以获得大量的金币,可以在随身商店中购买道具,同时也可以用于提升人物的各大系统。

3、非VIP玩家可以传送到主城NPC冷小月处进行装备和矿石的回收、VIP玩家则可以随时随地进行回收。

pythonrpm

转载请注明出处编程代码网 » pythonrpmlibrary

资讯

python行向量(Python里面向量该怎样运算)

阅读(1)

本文主要为您介绍python行向量,内容包括的Python:行和列向量之间的区别,python中的向量怎么表示,Python里面向量该怎样运算。首先要写上这一句:from numpy import *(写上这句的前提也得你已经安了numpy)(1) 定义一个零向量(4维):>>>

资讯

python创建ini文件(如何使用Python3读写INI配置文件)

阅读(0)

本文主要为您介绍python创建ini文件,内容包括pycharm如何新建ini文件,python3如何创建一个.ini的配置文件,如何使用Python3读写INI配置文件。ini文件简介ini是我们常见到的配置文件格式之一。ini是微软Windows操作系统中的文件扩展名(也常用

资讯

python引用其他文件的类(python怎么引用其他文件的类)

阅读(0)

本文主要为您介绍python引用其他文件的类,内容包括python怎么引用其他文件的类,python如何调用其他文件的类和方法,python如何在一个文件中调用另一个文件的类。在导入文件的时候,Python只搜索当前脚本所在的目录,加载(entry-point)入口脚本运

资讯

python斜率函数(如何用python表示三角函数)

阅读(0)

本文主要为您介绍python斜率函数,内容包括python如何根据斜率和截距画直线,如何用python表示三角函数,pythonrecursive。Python编码下面的三角函数包括以下种类:acos(x) //返回x的反余弦弧度值。 asin(x) //返回x的反正弦弧度值。 at

资讯

python3.4.3安装(如何在Centos上安装python3.4)

阅读(0)

本文主要为您介绍python3.4.3安装,内容包括如何在Python3.4上安装pythondocx,Python3.4怎么安装pip,lxml,bs4和requests求大神解答Window,python3.4怎么安装pip。下载Python3.4安装包wget https://www.python.org/ftp/python/3.4.4/Python-

资讯

python线程信号量(python多线程几种方法实现)

阅读(0)

本文主要为您介绍python线程信号量,内容包括python中信号量和进程池的区别,python中信号量和进程池的区别,python多线程几种方法实现。Python进阶(二十六)-多线程实现同步的四种方式临界资源即那些一次只能被一个线程访问的资源,典型例子就是

资讯

python取系统换行符(python中怎么换行?)

阅读(0)

本文主要为您介绍python取系统换行符,内容包括python中怎么换行?,python输入换行,pythonconfigparser内容有换行符怎么获取。Windows换行符是\r\n,Unix/Linux的换行符为\n,Mac的换行符为\r,在python中,对换行符进行了统一处理,定义

资讯

pythonurllib状态码(eclipse里的python环境如何导入urllib模块?)

阅读(0)

本文主要为您介绍pythonurllib状态码,内容包括Python3如何对url解码?实现Python2中urllib.unquote的作用?,pythonurllib,eclipse里的python环境如何导入urllib模块?。2:如果没有出错的话,则说明Eclipse的插件集成的方式有问题。 3:试着查看PyD

资讯

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