尝试开发一个自己的Python库

https://www.cnblogs.com/meet/p/18057112

https://packaging.python.org/en/latest/tutorials/packaging-projects/

开发自己的Python库是一项非常有趣且有益的任务。以下是创建和发布Python库的步骤:

1. 规划和准备

  • 确定库的功能:首先确定你的库将要实现的功能,并明确其目标用户。
  • 设计API:考虑如何设计库的接口,使其易于使用和理解。

2. 设置项目结构

创建一个项目目录,目录结构如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
your_library_name/
├── your_library_name/
│   ├── __init__.py
│   ├── module1.py
│   ├── module2.py
├── tests/
│   ├── test_module1.py
│   ├── test_module2.py
├── setup.py
├── README.md
├── LICENSE
└── .gitignore
  • your_library_name/: 主库代码的目录。
  • __init__.py: 使目录成为Python包,并可在其中导入模块。
  • tests/: 存放测试代码的目录。
  • setup.py: 用于库的配置和安装。
  • README.md: 项目的描述文件。
  • LICENSE: 开源协议文件。

3. 编写代码

  • 模块开发:在your_library_name目录下编写各模块代码。
  • 测试开发:在tests目录下编写测试代码,确保库功能的正确性。

4. 配置setup.py

setup.py 是Python库的安装配置文件,典型的文件内容如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from setuptools import setup, find_packages

setup(
    name='your_library_name',
    version='0.1',
    packages=find_packages(),
    install_requires=[
        # 列出依赖的包,如需使用
    ],
    author='Your Name',
    author_email='your.email@example.com',
    description='A brief description of your library',
    long_description=open('README.md').read(),
    long_description_content_type='text/markdown',
    url='https://github.com/yourusername/your_library_name',  # 代码仓库的URL
    license='MIT',
    classifiers=[
        'Programming Language :: Python :: 3',
        'License :: OSI Approved :: MIT License',
        'Operating System :: OS Independent',
    ],
    python_requires='>=3.6',
)

5. 编写README.md

  • 介绍库的功能和使用方法
  • 示例代码:提供一些简单的示例代码,展示如何使用你的库。

6. 编写测试

  • 使用unittestpytest编写测试,确保库在各种情况下都能正常运行。

7. 版本控制

  • 使用Git进行版本控制,并将代码托管在GitHub等平台上。

8. 发布到PyPI

  • 注册PyPI账户PyPI 是Python包的官方仓库。
  • 生成发布包
    1
    
    python setup.py sdist bdist_wheel
    
  • 安装twine并上传
    1
    2
    
    pip install twine
    twine upload dist/*
    

9. 安装和使用库

  • 发布后,你可以通过以下命令安装你的库:
    1
    
    pip install your_library_name
    

10. 维护和更新

  • 定期更新和维护你的库,修复bug,添加新功能。
Licensed under CC BY-NC-SA 4.0
Email: pengchen2001@zju.edu.cn
Built with Hugo
Theme Stack designed by Jimmy