当前位置:首页>python>10.1 Python 生态库的构建与发布 —— 从使用者到贡献者

10.1 Python 生态库的构建与发布 —— 从使用者到贡献者

  • 2026-09-08 09:26:55
10.1 Python 生态库的构建与发布 —— 从使用者到贡献者

10.1 Python 生态库的构建与发布 —— 从使用者到贡献者

Python 最大的魅力不是语言本身,而是它庞大而丰富的生态——超过 20 万个第三方库。但你知道吗:你写的代码也可以成为一个库,让别人 pip install 安装使用。这节不教你怎么用别人的库,而是教你怎么把自己的代码变成一个库。


🎯 本节要点:掌握模块和包的构建,了解如何发布自己的库

🔗 关联小程序: ch10_s10_1


一、模块——一个 .py 文件就是一个模块

模块(module)就是一整个 .py 文件。

# test.py —— 这是一个模块defadd(a, b):return a + bdefsubtract(a, b):return a - bPI = 3.14159

在其他文件中使用:

# main.py —— 使用模块import test                              # 导入 test 模块result = test.add(11, 22)                # 使用模块中的函数print(result)                            # 33print(test.PI)                           # 3.14159(使用模块中的变量)

导入模块的多种方式

# 方式 1:import 模块名import testtest.add(1, 2)# 方式 2:from 模块名 import 函数名from test import addadd(1, 2)                                # 直接用,不需要 test. 前缀# 方式 3:起别名import test as tt.add(1, 2)# 方式 4:导入所有(不推荐)from test import *                       # 可能引起命名冲突
方式
特点
推荐度
import test
完整命名空间,清晰
⭐⭐⭐⭐⭐
from test import func
简洁,只导入需要的
⭐⭐⭐⭐
import test as t
写起来短
⭐⭐⭐
from test import *
容易冲突
⭐

二、包——把相关模块组织起来

包(package)就是包含 __init__.py 的文件夹。

package_a/                    # 包名    __init__.py               # 包的标志文件    module.py                 # 包中的模块

包的导入

# 目录结构# package/#     __init__.py#     module.py# 方式 1:import 包.模块import package.modulepackage.module.func()# 方式 2:from 包 import 模块from package import modulemodule.func()# 方式 3:from 包.模块 import 函数from package.module import funcfunc()

多层包

package/    __init__.py    package_a/        __init__.py        module_a.py    package_b/        __init__.py        module_b.py
# 导入多层包from package.package_a import module_amodule_a.func()

三、__init__.py 的作用

当导入一个包时,__init__.py 会自动执行。它可以:

# package/__init__.pyprint("包已导入!")# 控制 from package import * 的内容__all__ = ['func1', 'func2']

四、发布你的库

写好的代码怎么让全世界的人都能 pip install?

步骤 1:准备目录结构

lib_test/    setup.py                 # 配置文件    package/        __init__.py        module.py        package_a/            __init__.py            module_a.py        package_b/            __init__.py            module_b.py

步骤 2:编写 setup.py

from distutils.core import setupsetup(    name = 'lib_test',                               # 包名    version = '1.0',                                  # 版本号    description = 'function package',                 # 描述    author = 'itcast',                                # 作者    py_modules = ['package.module','package.package_a.module_a','package.package_b.module_b'    ])

步骤 3:构建和发布

# 构建python setup.py build# 生成发布包python setup.py sdist# 安装到本地python setup.py install# 上传到 PyPI(需要注册账号)pip install twinetwine upload dist/*

小结

概念
说明
模块
一个 .py 文件
包
含 init.py 的文件夹
init
.py
包初始化、控制导入
setup.py
发布库的配置文件
PyPI
Python 官方包仓库

核心心法:模块和包是 Python 组织代码的基本单位。把相关功能封装成模块/包,代码更干净,也更容易复用。

下一节,我们来学习 Python 中常用的内置库。

最新文章

随机文章