1.先写了一个python 模块在/root/python目录下创建了一个包名Packages

mkdir Pakages

2.在Packages下创建了一个模块mymod.py

[root@bogon Pakages]# cat mymod.py 
#!/usr/bin/env python
#
x = 2017
def printInfo():
print x + 30
class TestClass():
data = 'hello testclass'
def __init__(self,y):
self.name = y
def printName(self):
print self.data, self.name
if __name__ == '__main__':
printInfo()
instance1 = TestClass('chinatelecom')
print instance1.data
print instance1.name

3.在Packages下创建格式文件,__init__.py,README,setup.py

 touch __init__.py README     ///因此此处仅做测试,因此为空

[root@bogon Pakages]# cat setup.py 
#!/usr/bin/env python
#
from distutils.core import setup
setup(
    name = 'Packages',
    version = '1.0',
    author = 'dengyuelin',
    author_email = 'dylisbean@gmail.com',
    maintainer_email = 'xxxx',
    py_modules = ['mymod'],
    url = 'your_url',
    download_url = 'http://www.hauhualin.com/pymodules/download',
    description = 'this is the test module'
       
)

目前目录文件如下:

[root@bogon Pakages]# ls
__init__.py  mymod.py  README  setup.py

3.创建需要的包的类型

3.1 二进制包:rpm,gztar,bztar,

获取帮助:可以支持的二进制包都在下面了,但是wininst和msi是windows环境的需要在windows平台的python才能制作。

[root@bogon Pakages]# python setup.py bdist --help-formats
List of available distribution formats:
  --formats=rpm      RPM distribution
  --formats=gztar    gzip'ed tar file
  --formats=bztar    bzip2'ed tar file
  --formats=ztar     compressed tar file
  --formats=tar      tar file
  --formats=wininst  Windows executable installer
  --formats=zip      ZIP file
  --formats=msi      Microsoft Installer

因此尝试制作rpm包:

[root@bogon Pakages]# python setup.py bdist --formats=rpm

rpm: /usr/bin/rpmspec: No such file or directory

error: Failed to execute: "rpm -q --qf '%{name}-%{version}-%{release}.src.rpm %{arch}/%{name}-%{version}-%{release}.%{arch}.rpm\\n' --specfile 'build/bdist.linux-x86_64/rpm/SPECS/Packages.spec'"

看原因是缺少/usr/bin/rpmspec,这是一个什么工具查一下:

yum whatprovides */rpmspec

原来是rpmbuild工具,安装一个,

yum install -y rpm-build-4.11.3-21.el7.x86_64

安装完后,重新制作rpm包:

python setup.py bdist --formats=rpm

没问题了,并且在当前目录下生成了build和dist目录,其中dist目录下生成了rpm包


3.2制作源码包:

删掉制作rpm包时生成的build和dist目录:rm -rf build  dist

获取帮助:

[root@bogon Pakages]# python setup.py sdist --help-formats
List of available source distribution formats:
  --formats=bztar  bzip2'ed tar-file
  --formats=gztar  gzip'ed tar-file
  --formats=tar    uncompressed tar file
  --formats=zip    ZIP file
  --formats=ztar   compressed tar file

继续制作源码包:

python setup.py sdist --formats=bztar

查看当前目录:只生成了一个新的dist目录和Packages-1.0.tar.bz2,没有build目录,

./
├── dist
│   └── Packages-1.0.tar.bz2
├── __init__.py
├── MANIFEST
├── mymod.py
├── README
└── setup.py

4.获取安装python包

将制作好的python包放到到网站上以供下载,下载下来以后使用

比如源码包先解压以后,进入解压后的路径,

python  setup.py   build 

python setup.py install 

即可

5.查看包的信息:可以看到PKG-INFO里面就是我们平时yum info rpm包时候的一些解释信息。



Author:网名为什么那么长

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐