开始创建包

开发 Python 包

James Fulton

Climate informatics researcher

为什么要构建包?

  • 便于复用代码
  • 避免大量复制粘贴
  • 使函数保持最新
  • 便于与他人共享
开发 Python 包

课程内容

你将构建一个完整的包,涵盖:

  • 文件布局
  • 导入结构
  • 使包可安装
  • 添加许可证与README
  • 代码风格与单元测试,提升质量
  • 在 PyPI 注册与发布
  • 使用包模板
开发 Python 包

脚本、模块与包

  • 脚本:可用 python myscript.py 运行的 Python 文件

  • 包:用于导入的一组 Python 代码的目录

    • numpy
  • 子包:包内更小的包

    • numpy.randomnumpy.linalg
  • 模块:包内存放包代码的 Python 文件

    • 例如:下一两页将展示
  • 库:包或包的集合

    • 如 Python 标准库(mathosdatetime 等)
开发 Python 包

包的目录结构

简单包的目录树

mysimplepackage/
|-- simplemodule.py
|-- __init__.py
  • 该目录名为 mysimplepackage,是一个 Python 包
  • simplemodule.py 包含全部包代码
  • __init__.py 将此目录标记为 Python 包
开发 Python 包

简单包的内容

__init__.py

空文件

simplemodule.py
def cool_function():
    ...
    return cool_result

...

def another_cool_function():
    ...
    return another_cool_result

存放通用函数与代码的文件。

开发 Python 包

子包

包含子包的包目录树

mysklearn/
|-- __init__.py
|-- preprocessing
|   |-- __init__.py
|   |-- normalize.py
|   |-- standardize.py
|-- regression
|   |-- __init__.py
|   |-- regression.py
|-- utils.py
开发 Python 包

Passons à la pratique !

开发 Python 包

Preparing Video For Download...