• python构建发布自定义模块


    学过python的小伙伴都知道,python有众多的第三方模块,正是这些共享模块的存在使得python变得愈加强悍。如何在python中构建发布自己的模块呢?

    首先新建一个文件夹,如x99,里面放入__init__.py,setup.py,x99.py三个模块,

    其中init空着,setup.py里面写入:

    from distutils.core import setup
    
    setup(
        name='nineXnine', 
        version='1.1.1',
        py_modules =['x99'], #这个要跟发布的模块名一致
        author='wangyi',
        author_email='1375737725@qq.com',
        url='http://www.cnblogs.com/wangyi0419',
        description='这是我的第一个发布'
    )

    setup.py中各个字段的含义:

    –name 包名称
    –version (-V) 包版本
    –author 程序的作者
    –author_email 程序的作者的邮箱地址
    –maintainer 维护者
    –maintainer_email 维护者的邮箱地址
    –url 程序的官网地址
    –license 程序的授权信息
    –description 程序的简单描述
    –long_description 程序的详细描述
    –platforms 程序适用的软件平台列表
    –classifiers 程序的所属分类列表
    –keywords 程序的关键字列表
    –packages 需要处理的包目录(包含__init__.py的文件夹)
    –py_modules 需要打包的python文件列表
    –download_url 程序的下载地址
    –cmdclass
    –data_files 打包时需要打包的数据文件,如图片,配置文件等
    –scripts 安装时需要执行的脚步列表
    –package_dir 告诉setuptools哪些目录下的文件被映射到哪个源码包。一个例子:package_dir = {’’: ‘lib’},表示“root package”中的模块都在lib 目录中。
    –requires 定义依赖哪些模块
    –provides定义可以为哪些模块提供依赖
    –find_packages() 对于简单工程来说,手动增加packages参数很容易,刚刚我们用到了这个函数,它默认在和setup.py同一目录下搜索各个含有 init.py的包。
    其实我们可以将包统一放在一个src目录中,另外,这个包内可能还有aaa.txt文件和data数据文件夹。另外,也可以排除一些特定的包
    find_packages(exclude=[".tests", ".tests.", "tests.", “tests”])
    –install_requires = [“requests”] 需要安装的依赖包


    选择性的写几个即可。

    x99.py里面写入自己的代码:(打印九九乘法表)

    class X99(object):
        def x99(self):
            print('
    '.join([' '.join(['%s*%s=%s '%(j,i,j*i) if j==1 else '%s*%s=%-2s '%(j,i,j*i)  for j in range(1,i+1)])for i in range(1,10)]))

     然后在x99这个文件夹下面shift+右键打开命令行,依次输入如下三个命令:

    1、构建

    构建完成后会发现多了个文件夹: build/lib/x99.py 

    2、打包

    打包完成后会发现多了个dist/nineXnine-1.1.1.tar.gz ,也就是我的setup.py中的包名和版本号,这个包就可以发布了。 

    3、安装

    也可以安装自己的包

    此时进入python交互模式试试:

     

     此时在python的安装目录下python3.7Libsite-packages中就能发现刚才安装的模块 x99.py。

  • 相关阅读:
    决策树
    性能测试–性能监视器
    MEAN栈开发
    Android Studio 入门(转)
    提取重复代码不应该只从代码角度,可以从业务角度看看(转)
    我眼中的领域驱动设计(转)
    网格最短路径算法(Dijkstra & Fast Marching)(转)
    Android GridView显示SD卡的图片
    Android GridView异步加载图片和加载大量图片时出现Out Of Memory问题
    Android 弹出框Dialog并缩放图片
  • 原文地址:https://www.cnblogs.com/wangyi0419/p/12495814.html
Copyright © 2020-2023  润新知