• Python distribution打包&安装流程



    开始看并写python有一段时间了,书零零碎碎看了些,博客到是读了很多。

    感觉基础不稳,花了点银子买了书,归零,重头学起。


    正在看head first python,伤不起呀,木有中文版的

    -------------------------------------------------------------------------------------------------

    需求:

    写了一堆自定义的模块,由于较为底层,其他模块想import的时候是十分悲剧的,各种找不到有木有,换个路径就郁闷,换台机器就悲剧

    想类似python第三方模块一样,一个setup.py搞定,就能随便import


    实现:

    python distribution,然后得到一个包了,使用setup.py install安装

    然后,使用时候直接import就ok了.


    1.创建目录结构

    假设我们的module是distribution_test.py

    建一个目录,目录名与module同名

    结构

    distribution_test

                 |-  distribution_test.py


    文件里我只放了一行代码:

    print("Hello,this is a distribution test")


    2.创建setup.py

    在distribution_test目录下编辑setup.py

    内容:

    from distutils.core import setup
    
    setup(
        name = "distribution_test",
        version = "0.0.1",
        py_modules = ["distribution_test"],
        author = "wklken",
        author_email = "wklken@yeah.net",
        url = "http://justtest",
        description = "just a sample of distribution",
        )   

    name是打完包后包名

    py_modules包含模块名列表,每个模块必须在文件夹下存在对应的  模块.py文件 

    例如上面这个配置,需要在文件夹下有一个

    distribution_test.py

    若是配置为py_modules = ["a", "b"]

    则目录下要有 a.py b.py 两个文件

    注意哦,否则一会install会报错的

    其他看着填吧


    3.build

    执行$python setup.py sdist



    然后得到目录:

    distribution_test

            |-distribution_test.py

            |- MANIFEST

            |-setup.py

            |-dist

                   |-distribution_test-0.0.1.tar.gz


    可以看看压缩包里面的文件结构:



    4.安装:

    在当前目录下(distribution_test)

    执行:

    $sudo python setup.py install


    这样就放到了/usr/lib/python下了,sys.path


    5.查看效果:



    6.

    要挪机器?

    只要把你所要打包的module的py文件放到目录下,书写相应的setup.py,执行python setup.py sdist

    然后压个包,扔到对应机器上

    解包

    python setup.py build  

    sudo python setup.py install

    【同安装第三方模块步骤】




    The end!

    2012-03-10


    转载请注明出处哈:http://blog.csdn.net/wklken


    Meet so Meet. C plusplus I-PLUS....
  • 相关阅读:
    【洛谷4725】【模板】多项式对数函数(多项式 ln)
    【洛谷4516】[JSOI2018] 潜入行动(树上背包)
    【洛谷4463】[集训队互测2012] calc(动态规划+拉格朗日插值)
    【洛谷1973】[NOI2011] NOI 嘉年华(DP)
    【BZOJ2958】序列染色(动态规划)
    【CF1037H】Security(后缀自动机+线段树合并)
    【洛谷5308】[COCI2019] Quiz(WQS二分+斜率优化DP)
    【BZOJ3512】DZY Loves Math IV(杜教筛)
    【洛谷2178】[NOI2015] 品酒大会(后缀数组+单调栈)
    【BZOJ2878】[NOI2012] 迷失游乐园(基环树DP)
  • 原文地址:https://www.cnblogs.com/iplus/p/4464659.html
Copyright © 2020-2023  润新知