PyPI.org: Python软件包索引的中心

PyPI是Python软件包索引(Python Package Index)的中心,它是存储Python软件包的全球最大的公共仓库。在PyPI上,您可以找到超过20万个第三方软件包,以及一组工具,可帮助您构建、打包、测试和发布Python软件包。

一、PyPI提供了什么?

PyPI是Python程序员的一个关键资源,它提供了以下内容:

1.超过20万个第三方Python软件包

Python的用户社区非常活跃,因此开发了很多有用的软件包,可以快速启动Python Web应用程序、开发数据分析和机器学习模型、处理图像和多媒体等。在PyPI上,您可以找到任何您需要的包。例如,想要使用Django构建Web应用程序您可以安装django包:

pip install django

您可以使用类似的方式安装其它软件包。

2.易于发布和分发软件包

发布软件包并不是一件简单的事情,但PyPI可以让整个过程变得非常容易,因为它提供了一个工具集,帮助您构建、测试和发布软件包。

为了发布软件包,您首先需要创建一个setup.py文件,该文件描述您的软件包的元数据和依赖性。例如,在这个快速入门指南中,您可以看到如何为一个名为”hello”的Python软件包定义最低要求:

from setuptools import setup, find_packages

setup(
    name="hello",
    version="0.1",
    packages=find_packages(),
    install_requires=[
        "requests"
    ],
    entry_points={
        "console_scripts": [
            "hello = hello:main"
        ]
    }
)

此文件应该被放在Python项目的根目录下。运行如下的命令“python setup.py sdist bdist_wheel”,将会打包软件包,并生成 egg-info 和 dist 子目录,最后可以使用类似的方式发布软件包:

pip install dist/hello-0.1-py3-none-any.whl

3.共同维护一组工具集

PyPI还提供了一组工具,帮助您管理软件包依赖性和版本控制。其中最常见的是pip,它是Python程序员常用的软件包管理器之一。pip 可以帮助您安装(以及升级!)软件包、搜索、卸载和管理Python 包依赖项。例如,如下的命令可以安装最新版本的 pandas并将其添加到requirements.txt中:

pip install pandas --upgrade
pip freeze > requirements.txt

二、如何使用PyPI?

想要开始使用PyPI存储你的开源项目,可以按照以下步骤:

1.创建一个Python软件包

首先,您需要创建一个Python软件包,要做到这一点需要学习如何使用Python Flask,这里我们不再赘述。请参阅这份教程,根据您的需要启动一个Flask应用程序。

2.打包Python软件包

一旦您创建了Python软件包,您就可以为它创建源代码分发包和wheel二进制分发包。下面的命令将会创建源代码分发包和wheel二进制分发包:

python setup.py sdist bdist_wheel

3.发布Python软件包

一旦您创建了分发包,您就可以将其发布到PyPI上,下面提供两种不同的方法:

方法1:手工发布软件包

您可以手工发布软件包。为了发布软件包,您需要首先注册账户。然后使用如下命令安装 twine:

pip install twine

接下来,运行如下命令:

twine upload dist/*

该命令会提示您输入PyPI账户名和密码,然后上传您软件包的源代码分发包和所有wheel包。

方法2:使用Github Action自动化发布软件包

您可以设置 GitHub 工作流,来自动化发布您的软件包。首先,您需要在您的github项目设置github secrets,该secrets包含您的PyPI账户名和密码。设置好了后,创建`.github/workflows/deploy.yml`文件,文件内容如下:

name: Deploy

on:
  push:
    tags: true

jobs:

  deploy:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v2

    - name: Set up Python 3.8
      uses: actions/setup-python@v2
      with:
        python-version: 3.8

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install wheel
        pip install twine

    - name: Build and Publish
      env:
        TWINE_USERNAME: __token__
        TWINE_REPOSITORY_URL: https://upload.pypi.org/legacy/
        TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
      run: |
        python setup.py sdist bdist_wheel
        twine upload --skip-existing dist/*

这个文件描述了一个工作流程,当你的项目在 master 分支上新打上了 Git tag 时(即版本更新),自动执行此流程。它将代码构建为二进制和分发包,然后将它们上传到PyPI。在此流程中,您需要使用您的PyPI API令牌作为Twine密码。

三、结论

带着上面的指南,您可以使用PyPI来发布您的Python软件包。PyPI是Python软件包索引的中心,它为Python开发人员提供了一个价值连城的资源库。无论是在开发Web应用、数据分析或其它领域,PyPI都是帮助您实现Python项目的一个必备之处。

原创文章,作者:MABAD,如若转载,请注明出处:https://www.506064.com/n/332972.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
MABADMABAD
上一篇 2025-01-27 13:34
下一篇 2025-01-27 13:34

相关推荐

  • ArcGIS更改标注位置为中心的方法

    本篇文章将从多个方面详细阐述如何在ArcGIS中更改标注位置为中心。让我们一步步来看。 一、禁止标注智能调整 在ArcMap中设置标注智能调整可以自动将标注位置调整到最佳显示位置。…

    编程 2025-04-29
  • Python基本索引用法介绍

    Python基本索引是指通过下标来获取列表、元组、字符串等数据类型中的元素。下面将从多个方面对Python基本索引进行详细的阐述。 一、列表(List)的基本索引 列表是Pytho…

    编程 2025-04-29
  • CPU爆满怎么解决 Java为中心

    在Java编程中,难免会遇到CPU占用过高的情况,接下来从多个方面介绍如何解决CPU爆满问题。 一、优化代码 1、减少循环次数。循环体内不要放太多逻辑判断和计算,可以把计算提取出来…

    编程 2025-04-29
  • CMD如何升级为中心?

    本文将详细介绍在Windows操作系统下如何将CMD升级为中心,以及如何在升级后使用CMD中心进行操作。 一、下载Windows Terminal Windows Terminal…

    编程 2025-04-29
  • 如何将Oracle索引变成另一个表?

    如果你需要将一个Oracle索引导入到另一个表中,可以按照以下步骤来完成这个过程。 一、创建目标表 首先,需要在数据库中创建一个新的表格,用来存放索引数据。可以通过以下代码创建一个…

    编程 2025-04-29
  • 如何使用GPU加速运行Python程序——以CSDN为中心

    GPU的强大性能是众所周知的。而随着深度学习和机器学习的发展,越来越多的Python开发者将GPU应用于深度学习模型的训练过程中,提高了模型训练效率。在本文中,我们将介绍如何使用G…

    编程 2025-04-29
  • 索引abc,bc会走索引吗

    答案是:取决于MySQL版本和表结构 一、MySQL版本的影响 在MySQL 5.6之前的版本中,MySQL会同时使用abc和bc索引。但在MySQL 5.6及之后的版本中,MyS…

    编程 2025-04-29
  • 如何修改ant组件的动效为中心

    当我们使用Ant Design时,其默认的组件动效可能不一定符合我们的需求,这时我们需要修改Ant Design组件动效,使其更加符合我们的UI设计。本文将从多个方面详细阐述如何修…

    编程 2025-04-29
  • 黑夜不迷途打一中药名为中心

    中药作为中华民族独有的药物疗法,已经历了千百年的历史,在中医中发挥着重要的作用。其中有一种药物,以“黑夜不迷途”为谜底,是一种著名的中药。下面将从药物的组成、功效、用法等方面,进行…

    编程 2025-04-29
  • Python切片索引越界是否会报错

    解答:当对一个字符串、列表、元组进行切片时,如果索引越界会返回空序列,不会报错。 一、切片索引的概念 切片是指对序列进行操作,从其中一段截取一个新序列。序列可以是字符串、列表、元组…

    编程 2025-04-29

发表回复

登录后才能评论