如何编写自己的python包,并进行安装和发布

如何编写自己的python包,并进行安装

1.新建一个文件夹My_pkgs,在该文件夹里再新建一个文价夹my_packages和一个文本文件setup.txt
2.在my_packages文件夹里新建三个txt文件,分别为:__ init__.py;getMax.txt;getMin.txt

结果如下图:
如何编写自己的python包,并进行安装和发布_第1张图片
如果不进行安装,则不需要新建setup.txt。
如何编写自己的python包,并进行安装和发布_第2张图片
Python中_init_.py是package的标志。init.py 文件的一个主要作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件。在python中导入一个包时,实际上是导入了它的__init__.py文件,这样我们可以在__init__.py文件中批量导入我们所需要的模块,而不再需要一个一个的导入。
例如:

# package
# __init__.py
import re
import urllib
import sys
import os
# a.py
import package
print(package.re, package.urllib, package.sys, package.os)
3.分别编辑getMax和getMin这两个文件,并保存为python文件,结果如下:
getMax.py
def max(a,b):
    if a >= b:
        return a
    else:
        return b
getMin.py
def min(a,b):
    if a <= b:
        return a
    else:
        return b
下面编辑__init__.py文件:
__all__=["getMax","getMin"]

可以根据自己编写的文件名,添加在[" "]中。这样在导入模块后,就可以直接使用getMaxh和getMin这两个文件了。如果要包含其他模块,可以使用from … import …导入。

然后对setup.txt进行编辑如下:
from distutils.core import setup
setup(
name="my_minmax",
version="1.0",
description="edited by myself",
author="lius",
py_modules=["my_packages.getMax""my_packages.getMin"]
)

并保存为py文件。
其中name就是最终生成的模块的名字,即包名。version就是该包的版本了,py_modules就是该文件包下包含的py文件。
此时得到的结果是:
如何编写自己的python包,并进行安装和发布_第3张图片
如何编写自己的python包,并进行安装和发布_第4张图片

不经过安装进行调用该包:

如何编写自己的python包,并进行安装和发布_第5张图片

下面进行包的安装:

1)进入cmd命令行,cd到文件夹My_pakgs的目录下:
并输入:
python setup.py build
得到结果如下:
如何编写自己的python包,并进行安装和发布_第6张图片
这时在My_pkgs文件夹下出现了build文件夹,具体内容大家可以查看。
再在命令行中继续输入:
python setup.py sdist
结果如下:
如何编写自己的python包,并进行安装和发布_第7张图片
有一些需要作者信息等的警告,不用管他。
这时再看看文件夹:
如何编写自己的python包,并进行安装和发布_第8张图片
其中可以安装和发布的压缩文件在dist文件夹中:
如何编写自己的python包,并进行安装和发布_第9张图片
该文件可以给大家共享了。

安装这个包:

打开cmd命令行,使用:
激活需要安装到的python环境,
pip install C:***\My_pkgs\dist\my_minmax-1.0.tar.gz
显示:
在这里插入图片描述
至此安装成功,可以想其他包一样对该包进行调用了。

打开第三方包,可以发现:
如何编写自己的python包,并进行安装和发布_第10张图片
一个是安装包my_minmax文件信息,一个就是模块所在的文件my_packages

调用模块:
如何编写自己的python包,并进行安装和发布_第11张图片
如果卸载该包,卸载的是my_mimmax,而不是my_packages。因为在之前setup.py中写的name=my_minmax,即该包的名字叫做my_minmax
如何编写自己的python包,并进行安装和发布_第12张图片

你可能感兴趣的:(Anaconda,vsc,python)