当完成某个功能模块开发后,可以将其对外发布,其他开发者也可以以”第三方扩展库“的方式使用自己上传的模块。
一、模块的本地发布
1.为模块文件创建如下结构的文件夹、包和模块文件(Demo_test 是对外发布的模块名):
add.py 的内容结构如下:
def func():
print("'I'm add method!")
sub.py 的内容结构如下:
def func():
print("'I'm sub method!")
2.在 new_module 文件夹中创建一个名为 setup.py 文件,在文件中输入以下内容:
from distutils.core import setup
setup(
name='Demo_test', # 对外模块的名字
version='1.0.0', # 版本号
description='测试本地发布模块', # 描述
author='dgw', # 作者
author_email='535646343@',
py_modules=['Demo_test.add', 'Demo_test.sub'], # 要发布的模块
)
3.构建一个发布文件。打开终端,cd 到 new_module目录下,键入以下命令:
python setup.py sdist
执行完毕后,目录的结构如下:
4.本地安装模块
将要发布的模块安装到自己本地计算机上。仍在 cmd 命令行模式下操作,进 setup.py 所在目 录,键入命令:
python setup.py install
5.安装成功后,进入 python 工程目录:venv/Lib/site-packages 目录(第三方模块都安装的这里,python 解释器执行时也会搜索这个路径):
6.使用 import 导入该模块进行使用:
示例代码:
from Demo_test import add, sub
add.func()
sub.func()
运行结果:
二、上传模块到 PyPI
1、首先在PyPI官网上进行注册登录。
2、创建用户信息文件 .pypirc 文件
- 方式1:使用命令(适用 Linux)
输入命令:python setup.py register
并执行后 ,然后输入用户名和密码即可
- 方式2:使用文件(适用 windows,Linux)
在用户目录:user目录下创建一个文件名为 .pypirc, 输入以下内容: 【注意:用户名和密码处不能放引号,否则会报错】
[distutils]
index-servers=pypi
[pypi] repository = https:///legacy/
username = 账户名
password = 密码
Tips:
- Linux 的用户目录: ~/.pypirc
- Windows 的用户目录是: c:/user/用户名
- 在 Windows 下直接创建不包含文件名的文件会失败,因此创建时文件名为 “.pypirc.”, 前后都有两个点即可
3、上传并远程发布:
进入 setup.py 文件所在目录,使用命令:python setup.py sdist upload
,即可以将模块代码上传并发布。
上传时报了上面这个错误,查看官网给的解释如下:
可能是模块命名问题,与他人的模块名有冲突,我这儿把模块的名字后面加了一个数字521,将原模块名改为Demo_test521,让后再将上面的所有操作再重新执行一下。
本次上传成功:
上传成功后就可以看到你上传的模块了
安装同样可以使用 pip 工具进行安装:pip install Demo_test521
,或者通过 PyCharm 中的其它安装方式进行安装。
注意:记得卸载之前安装的模块名哦~