linux系统下对python创建的模块进行打包并发布的具体步骤

之前在前面的 Python的模块与包 文章中具体的介绍了模块,也介绍了模块创建与发布的步骤。

文章地址:https://blog.csdn.net/Mr_fengzi/article/details/90767007

假如你自己写了一个自我感觉很不错的程序,那么如何将这个程序打包封装成模块,之后就可以很方便地引用自己的模块去实现相关要求呢?

本篇文章将主要介绍在linux系统下对python创建的模块进行打包并发布的具体操作步骤。

 以上一篇 python实现GIF动图倒放的效果 为例,我们将其打包成模块,并进行发布,可以方便以后的调用。GIF动图倒放 的文章地址:https://blog.csdn.net/Mr_fengzi/article/details/91148655


以下我们都在linux中的Terminal输入命令行进行操作:

1.首先创建一个目录(gif),之后可以存放相关模块文件,并跳转到该目录下。

[kiosk@foundation0 ~]$ mkdir gif
[kiosk@foundation0 ~]$ cd gif

2.用vim命令创建一个文本文件,并将之前写好的模块程序写入保存到该文件中,文件以.py结尾

[kiosk@foundation0 gif]$ vim gif.py

3.将下面的程序写入文本文件中

# ImageSequence: 会将动图分割成每一帧的图片;
import os

from PIL import  Image, ImageSequence
def gif_reverse(src_file, dst_file):
    try:
            # 打开文件, 并起一个别im
            with Image.open(src_file) as im:
                # 判断图片文件是否为动图?
                if im.is_animated:
                    # 对于图片进行反转
                    images = [image.copy()  for image in ImageSequence.Iterator(im)][::-1]
                    # 将反转的图片保存成新的动图;
                    images[0].save(dst_file, save_all=True, append_images=images[1:])

    except BaseException as e:
        print("动图反转错误:" , e)
    else:
        print("[%s] 反转为 [%s]成功!" %(src_file, dst_file))


def gif_split(src_file, dst_dirname):
    """
    将gif动图分割为一个个图片
    :param src_file: 分割的gif文件
    :param dst_dirname: 存储图片的目录
    :return:
    """
    try:
        # 打开文件, 并起一个别im
        with Image.open(src_file) as im:
            # 判断图片文件是否为动图?
            if im.is_animated:
                # 依次将动图的每个图片保存到文件中;
                index = 0
                for image in ImageSequence.Iterator(im):
                    # 获取存储文件的绝对路径;
                    filename = '%s.png' %(index)
                    # 为了跨平台, Linux拼接: /, Windows拼接: \   C:\User\python
                    full_filename = os.path.join(dst_dirname, filename)
                    image.save(filename)
                    index += 1
    except BaseException as e:
        print("动图分割失败: ", e)
    else:
        print("动图分割成功, 保存在[%s]目录中" %(dst_dirname))



if __name__ == '__main__':
    gif_reverse('doc/cat.gif', 'doc/cat1.gif')

4.用vim命令在gif目录下创建一个setup.py文件,将用于以后的安装

[kiosk@foundation0 gif]$ vim setup.py

5.setup.py文件中要写入固定格式的内容,之后才能成功安装,要写入的内容如下:

#从Python发布工具导入"setup"函数
from distutils.core import setup

setup(
    name='gif',
    version='0.0.1',  #版本号
    py_modules = ['gif'],
    author='你的姓名',
    author_email='你的邮箱地址',
    url='模块链接',
    description='动图的快速分割与反转'
)

6.利用python setup.py build 进行模块的创建

[kiosk@foundation0 gif]$ python3 setup.py build

7.利用python setup.py sdist 进行模块的发布

[kiosk@foundation0 gif]$ python3 setup.py sdist

8.利用tree命令查看所有目录与文件的所属关系,如下:

[kiosk@foundation0 gif]$ tree
.
├── build
│   └── lib
│       └── gif.py
├── dist
│   ├── gif-0.0.1
│   │   ├── build
│   │   │   └── lib
│   │   │       └── gif.py
│   │   ├── gif.py
│   │   ├── PKG-INFO
│   │   ├── __pycache__
│   │   │   └── gif.cpython-37.pyc
│   │   └── setup.py
│   └── gif-0.0.1.tar.gz
├── gif.py
├── MANIFEST
└── setup.py

7 directories, 10 files

9.可以看到在dist目录下有一个安装包 gif-0.0.1.tar.gz ,对其进行解压

[kiosk@foundation0 dist]$ tar xf gif-0.0.1.tar.gz

10.对模块进行安装

[kiosk@foundation0 dist]$ python3 setup.py install

11.接下来就可以使用 import gif 导入装好的模块了

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值