• python自定义安装包


    python的第三方模块越来越丰富,涉及的领域也非常广,如科学计算、图片处理、web应用、GUI开发等。当然也可以将自己写的模块进行打包或发布。一简单的方法是将你的类包直接copy到python的lib目录,但此方式不便于管理与维护,存在多个python版本时会非常混乱。现介绍如何编写setup.py来对一个简单的python模块进行打包。

    一、编写模块
    进入项目目录
    #cd /home/pysetup 
    #vi Test.py

    # *__coding: UTF-8__*
    import socket
    import uuid
    def getinfo():
    myip=socket.gethostbyname(socket.gethostname())
    print("本机IP地址是::"+myip)
    node=uuid.getnode()
    mac=uuid.UUID(int=node).hex[-12:]
    print("本机Mac地址是:"+mac)

     

    二、编写setup.py
    #vi setup.py

    from distutils.core import setup
    setup(
    name='PackageTest',
    version='1.0',
    description='package test',
    author='hujin',
    author_email='hujin@envbase.com',
    url='http://www.baidu.com',
    py_modules=['Test'],
    )

    三、打包

    #python setup.py build     # 编译
    #python setup.py install     #安装
    #python setup.py sdist       #生成压缩包(zip/tar.gz)
    #python setup.py bdist_wininst   #生成NT平台安装包(.exe)
    #python setup.py bdist_rpm #生成rpm包

    或者直接"bdist 包格式",格式如下:
     
    #python setup.py bdist --help-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


    warning: sdist: manifest template 'MANIFEST.in' does not exist (using default file list)
    warning: sdist: standard file not found: should have one of README, README.txt

    writing manifest file 'MANIFEST'
    creating Myblog-1.0
    making hard links in Myblog-1.0...
    hard linking foo.py -> Myblog-1.0
    hard linking setup.py -> Myblog-1.0
    creating dist
    tar -cf dist/Myblog-1.0.tar Myblog-1.0
    gzip -f9 dist/Myblog-1.0.tar
    removing 'Myblog-1.0' (and everything under it)


    提示两条warning可以忽略,不影响打包,当然一个完善的项目必须有README及MANIFEST.in(项目文件清单)文件。
    #ls dist

    Myblog-1.0.tar.gz

    五、安装
    #tar -zxvf Myblog-1.0.tar.gz
    #cd Myblog-1.0.tar.gz
    #python setup.py install (此命令大家再熟悉不过了)

    六、测试

    >>>from Test import getinfo
    >>> getinfo()
    >>> 本机IP地址是:xxx
    本机Mac地址是:xxx

    注意:通常系统内置的包都是小写的,为了避免命名冲突,通常我们自定义的包的名字首字母一般大写。

  • 相关阅读:
    Kafka 再均衡监听器示例
    Spring boot中异步线程池
    【Java&Go并发编程系列】4.等待一组并发任务完成——CountDownLatch VS sync.WaitGroup
    Redis常用命令对应到Redisson对象操作
    js清空缓存,ajax
    phpexcel用法 转、
    composer 使用
    转:git操作
    手机微信内支付
    微信扫码支付
  • 原文地址:https://www.cnblogs.com/smallcoderhujin/p/3274702.html
Copyright © 2020-2023  润新知