• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

不会飞的独角兽

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

django项目 -python构建rpm

django项目,用python3 构建rpm包

环境:python3.6.8 centos7

 

依赖:在服务器上安装

yum -y install rpmdevtools

yum -y install rpm-build

 

rpmdev-setuptree 生成rpm需要的环境,在/root/目录(/home)下生成rpmbuild目录,目录下各个文件夹解释参考


setup(
name='test', 
version='test', 
description='test make rpm', 
author='author', 
author_email='author@gmail.com', 
url='http://author.github.io/', 
license='GPL', 
packages=find_packages(), # 自动发现有__init__.py的python包 
package_data = {'django_project': ['deploy/*', 'requirements.txt', 'README.txt', 'static/*', 'script/*']}, # 输入没有__init__.py的文件或文件夹,不要有中文名的文件,会报错 
zip_file=False, 
# data_files=[('/etc/maerd',['maerd.conf'])], # 放在该django_project包之外的文件
 ) 

具体setup函数参数解释参考:https://blog.konghy.cn/2018/04/29/setup-dot-py/

在该目录下执行python3 setup.py bdist_rpm,
在本目录下会生成
./makerpmfile/setup.py
./makerpmfile/build/ # 新生成
./makerpmfile/dist/ # 新生成 ,有.rpm文件
./makerpmfile/django_project
./makerpmfile/django_project.egg-info

一般到这一步就完成rpm包制作了,测试在另一台机器安装,安装后,代码在/usr/lib/python3.6/site-packages/django_project/下

如果报错error: Arch dependent binaries in noarch package,是因为默认noarch架构,有冲突

方法1. 在makerpmfile/build/bdist.linux-x86_64/rpm/SPECS/django_project.spec中修改

bash %define _binaries_in_noarch_packages_terminate_build 0
rpmbuild -bs test1.spec

方法2. 删除BuildArch:noarch这一行
然后执行rpmbuild -bs test1.spec

方法3. python setup.py bdist_rpm --force-arch x86_64

补充spec文件

%define name test
%define version test 
%define unmangled_version test 
%define unmangled_version test 
%define release 1 
Summary: test make rpm 1.0 
Name: %{name} 
Version: %{version} Release: %{release} Source0: %{name}-%{unmangled_version}.tar.gz License: GPL Group: Development/Libraries BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot Prefix: %{_prefix} 
BuildArch: x86_64 
Vendor: author <
author@gmail.com> 
Url: http://author.github.io/ 
%description UNKNOWN 

%prep 
%setup -n %{name}-%{unmangled_version} -n %{name}-%{unmangled_version} 

%build 
python3 setup.py build 

%install 
python3 setup.py install --single-version-externally-managed -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES 

%clean 
rm -rf $RPM_BUILD_ROOT 

%files -f INSTALLED_FILES 
%defattr(-,root,root)```</p>

posted on 2020-12-19 11:01  不会飞的独角兽  阅读(332)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3