当前位置: 首页 > article >正文

Python 打包为 .whl(Wheel)格式的包 发布到 PyPI

在 Python 中,打包为 .whl(Wheel)格式的包可以使用 setuptools 工具。以下是创建和打包 Python 项目的步骤:

1. 安装 setuptoolswheel

确保你已经安装了 setuptoolswheel。如果没有,可以使用以下命令安装:

pip install setuptools wheel

2. 创建项目结构

假设你有一个简单的项目,目录结构如下:

my_package/
│
├── my_package/
│   ├── __init__.py
│   └── my_module.py
│
├── setup.py
└── README.md
  • my_package/: 包含你的源代码。
  • setup.py: 包含包的配置信息。
  • README.md: 包的描述文档(可选)。

3. 编写 setup.py

在项目根目录下创建 setup.py 文件,内容如下:

from setuptools import setup, find_packages

setup(
    name='my_package',  # 包名
    version='0.1.0',  # 版本号
    packages=find_packages(),  # 自动查找子包
    install_requires=[  # 依赖包
        # 'numpy',  # 示例依赖
    ],
    description='My sample Python package',  # 包描述
    long_description=open('README.md').read(),  # 长描述
    long_description_content_type='text/markdown',  # 描述类型
    url='https://github.com/yourusername/my_package',  # 项目地址
    author='Your Name',  # 作者
    author_email='your.email@example.com',  # 作者邮箱
    classifiers=[  # 分类信息
        'Programming Language :: Python :: 3',
        'License :: OSI Approved :: MIT License',
        'Operating System :: OS Independent',
    ],
    python_requires='>=3.6',  # Python 版本要求
)

4. 创建 Wheel 包

在项目根目录下打开命令行(或终端),运行以下命令:

python setup.py bdist_wheel

5. 生成的文件

运行上述命令后,会在 dist/ 目录下生成一个或多个 .whl 文件,例如:

my_package/
│
├── dist/
│   ├── my_package-0.1.0-py3-none-any.whl
│
├── my_package/
│   ├── __init__.py
│   └── my_module.py
│
├── setup.py
└── README.md

6. 安装 .whl 文件

你可以使用 pip 安装生成的 .whl 文件:

pip install dist/my_package-0.1.0-py3-none-any.whl

7. 发布到 PyPI(可选)

如果你想将你的包发布到 Python 包索引(PyPI),你可以使用 twine 工具。首先,确保你已经安装了 twine

pip install twine

然后,使用以下命令将包上传到 PyPI:

twine upload dist/*

总结

以上步骤展示了如何在 Python 中创建和打包一个 Wheel 包(.whl)。这个过程包括项目结构设置、编写 setup.py 配置文件、生成 Wheel 文件以及安装和发布的步骤。这样,你就可以方便地分发和安装你的 Python 包了!如果你有其他问题或需要进一步的帮助,请随时告诉我!


http://www.kler.cn/news/341428.html

相关文章:

  • 《14天从0到1学Java》第二天之01Java中的分支结构if语句
  • Python简介与入门
  • jmeter入门: 安装
  • mpi 示例小程序集锦
  • C语言之扫雷小游戏(完整代码版)
  • SpringBoot美发门店系统:提升服务质量
  • git pull
  • 如何激发员工对FMEA的浓厚兴趣与深度应用?
  • 谈谈英国硕士毕业论文如何收集问卷数据
  • Vue.js组件开发:构建可复用、可维护的前端应用
  • 物理学基础精解【61】
  • quantlab_ai版本v0.1代码发布: 从研报中提取因子并建模(附代码与研报集下载)
  • Qt C++设计模式->解释器模式
  • Linux中yum与apt有什么区别
  • turtlebot3使用
  • 《向量数据库指南》——Mlivus Cloud:重塑向量数据库的性能与可扩展性新标杆
  • 【北京迅为】《STM32MP157开发板嵌入式开发指南》-第二十二章 安装VMware Tool 工具
  • 爬虫常用正则表达式用法
  • 安装雷池社区版,保护网站安全
  • sql调优指南及高级sql技巧