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/zh-hant/n/332972.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
MABAD的頭像MABAD
上一篇 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

發表回復

登錄後才能評論