python构建发布自定义模块

Posted 天青色wy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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(\'\\n\'.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.7\\Lib\\site-packages中就能发现刚才安装的模块 x99.py。

以上是关于python构建发布自定义模块的主要内容,如果未能解决你的问题,请参考以下文章

Python笔记:构建发布模块

pyinstaller 找不到自定义导入的模块

python--构建发布自己的模块

python 模块的概念介绍

在使用 Visual Studio 2017 和 boost 构建的 python 中加载自定义 dll 时出现依赖错误

如何修复自定义模块中的“未定义变量”