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。

原文地址:https://www.cnblogs.com/wangyi0419/p/12495814.html