最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文詳解python如何將編寫的模塊打包上傳至pypi

 更新時間:2023年05月09日 14:20:58   作者:真的不能告訴你我的名字  
我們此前花了很大功夫?qū)懥艘粋€極其簡單的web框架myWeb,想要給別人用的時候,需要讓別人拷貝源代碼才行,這太low了,所以本篇文章會介紹如何將自己寫的模塊打包上傳至pypi,以便讓需要的人通過pip進(jìn)行安裝,感興趣的同學(xué)可以參考閱讀

本文所依賴的環(huán)境為:

這里你可能會好奇,為啥和之前版本不一樣了呢?因為我在學(xué)習(xí)打包的時候,發(fā)現(xiàn)我們此前的python 3.68只支持到Setuptools 59.6.0,沒辦法安裝到Setuptools 61.0,所以我重新源碼安裝了一下python 3.7。 如果你和我一樣,是在centos 7上面學(xué)習(xí)的,注意也要升級一下python版本哦!

這里還有一點需要注意,如果我們是第一次將python進(jìn)行打包上傳到pypi或者說只是為了測試,建議一開始不直接上傳pypi.org,而是上傳至test.pypi.org,這是python提供的一個測試系統(tǒng),環(huán)境和pypi.org一致,所以,我們本篇文章所上傳的庫為test.pypi.org。

什么是pypi

python除了系統(tǒng)默認(rèn)模塊,如os、re、time等等,還有眾多的第三方模塊,如大名鼎鼎的flask、wsgiref等等。

我們通常想要使用第三方模塊的時候,需要先使用pip進(jìn)行安裝,例如:

pip3 install flask

這個命令,會向軟件存儲庫下載第三方模塊包,這個軟件存儲庫就是Pypi也稱之為包索引。默認(rèn)如果不指定源,則會向 pypi.org/ ,也可以在pip中使用-i選項指定源,例如清華pypi源等等。

用一句話概括,pypi就是存儲python開發(fā)者編寫的第三方模塊的地方。

此外還有眾多的源,如果不是作為私有庫的話,幾乎都是同步的python官方pypi。

注冊pypi

如果你想注冊真實的pypi,則使用的url為: pypi.org/account/register/。

這里還是要提醒,請不要將測試的項目上傳至pypi,那樣對使用者很不友好。

打開pypi注冊頁面,填上電子郵件等信息,進(jìn)行注冊,pypi注冊網(wǎng)址: test.pypi.org/account/register/

填寫完畢后,點擊【Create account】即可創(chuàng)建賬號。而后pypi會給注冊的郵箱發(fā)送一個校驗url,點擊后,即可注冊成功。

注冊成功后,我們需要生成token用于上傳pypi,注冊成功登錄后,需要從用戶名點擊,選擇【Account Settings】

往下滑,找到【API tokens】

點擊后,輸入Token名稱,和選擇Token范圍

完成后,點擊【Add token】 就可以了。

完成后,會得到一個很長的以pypi-開頭的token,請記住它,后面要用

至此,注冊pypi,生成token已經(jīng)結(jié)束了。

python打包格式

這里我將整個目錄都放到了gitee上,相關(guān)格式的話,可以看一下,地址: gitee.com/pdudo/golearn/tree/master/python/PackagingTesting/JuejinPdudoProject

在進(jìn)行打包之前,我們需要創(chuàng)建符合pypi包格式的文件,其包的格式為:

其中,目錄和文件的含義分別為:

  • LICENSE: 包的許可證。
  • pyproject.toml: python項目配置文件。
  • README.md:項目說明文件。
  • src: 存放源碼的目錄。
  • src.juejinPdudoSampleWeb:是一個目錄,包名為: juejinPdudoSampleWeb。
  • src.juejinPdudoSampleWeb.*:python源文件,注意__init__.py為入口文件,可以為空。
  • tests:測試程序目錄。

在該目錄下,pyproject.toml尤其重要,這里貼一下我們本次打包文件的內(nèi)容為:

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[project]
name = "JuejinPdudoProject"
version = "0.0.2"
authors = [
  { name="pdudo", email="1052558+pdudo@user.noreply.gitee.com" },
]
description = "A simple WSGI-compliant web application layer framework"
readme = "README.md"
requires-python = ">=3.7"
classifiers = [
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: MIT License",
]

[project.urls]
"Homepage" = "https://gitee.com/pdudo/golearn/blob/master/python/PackagingTesting"
"Bug Tracker" = "https://gitee.com/pdudo/golearn/issues"

其中,有三個大項,分為為:

  • build-system:包的依賴環(huán)境。
  • project:項目內(nèi)容。
  • project.urls:項目URL。

build-system是構(gòu)建包所需的列表信息。

project下,其中name、versionauthors、description是包的基本信息,包括名稱、版本、作者 以及 包的簡介等。

readme是指定項目的說明文件,一般而言是README.md,requires-python是該包所依賴的python版本,classifierspython包的元數(shù)據(jù)。

最后是project.urls,它將在pypi上顯示輸入的額外鏈接。

打包上傳至pypi

如果將pypi包的格式做好了,那么恭喜你,就可以開始打包了,在進(jìn)行正式打包之前,我們需要安裝相關(guān)依賴:

基本工具安裝

安裝打包工具build

pip3 install build

如果網(wǎng)絡(luò)很差的時候,可以考慮下使用第三方源,例如清華,安裝build命令為:

pip3 install build -i https://pypi.tuna.tsinghua.edu.cn/simple

使用build進(jìn)行打包

開始打包的時候,需要進(jìn)入JuejinPdudoProject,和pyproject.toml處于同一目錄,使用如下命令進(jìn)行打包:

python3 -m build

在此過程中,它會常見虛擬環(huán)境,安裝構(gòu)建依賴,而后開始按照文件內(nèi)容,進(jìn)行打包。

如果成功的話,會出現(xiàn)Successfully built juejinPdudoProject-0.0.2.tar.gz and juejinPdudoProject-0.0.2-py3-none-any.whl類似的信息:

如果此時我們再使用tree命令查看當(dāng)前目錄下結(jié)構(gòu):

我們會發(fā)現(xiàn),此時多了一個目錄dist,里面正是我們打包的包。

使用twine上傳至pypi

在當(dāng)前目錄下,使用命令

python3 -m twine upload --repository testpypi dist/* --verbose

就可以將包上傳至pypi了,在此過程中,會讓我們輸入用戶名和密碼,還記得我們注冊pypi的時候生成過一個API tokens,上傳的時候會用到此信息。

這個就證明上傳pypi成功了。此時再打開頁面,就可以看到相關(guān)內(nèi)容了:

此時打開pypi網(wǎng)頁,就可以看到我們創(chuàng)建的項目了:

從pypi下載包測試代碼

這里,我們根據(jù)網(wǎng)站提示下載包:

我們這次在windows終端下安裝該包:

我們這次在windows終端下安裝該包:

在瀏覽器進(jìn)行測試后,可得

由此證明上傳的包沒有問題。

總結(jié)

本篇文章介紹了什么是pypi,以及打包的格式,最后打包完畢后,將包上傳至pypi。這里有幾個細(xì)節(jié)可以注意一下,當(dāng)我們打包后,會得到一個dist目錄,在該目錄下,有一個結(jié)尾為.whl的文件,我們可以直接通過pip install 跟上文件名來安裝一下包,若包沒問題后,我們就可以上傳到pypi了。還有pypi有一個很嚴(yán)格的措施,為了安全,pypi不允許重復(fù)使用項目,即使該項目被刪除了并再次上傳也不行,這是要方式項目被惡意更改,所以刪除就再也不存在該項目了,還有一點,如果只是測試上傳pypi,請使用test.pypi.org

以上就是一文詳解python如何將編寫的模塊打包上傳至pypi的詳細(xì)內(nèi)容,更多關(guān)于python模塊打包上傳至pypi的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python測試Kafka集群(pykafka)實例

    Python測試Kafka集群(pykafka)實例

    今天小編就為大家分享一篇Python測試Kafka集群(pykafka)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python使用PyQt5實現(xiàn)中英文切換功能

    Python使用PyQt5實現(xiàn)中英文切換功能

    在Python中使用PyQt5實現(xiàn)應(yīng)用程序的中英文切換功能,可以通過國際化(i18n)和本地化(l10n)的技術(shù)來實現(xiàn),以下是一個詳細(xì)的教程,包括UI界面多語言切換和程序內(nèi)部字符串多語言切換兩部分,需要的朋友可以參考下
    2024-12-12
  • 簡單講解Python編程中namedtuple類的用法

    簡單講解Python編程中namedtuple類的用法

    namedtuple類位域Collections模塊中,有了namedtuple后通過屬性訪問數(shù)據(jù)能夠讓我們的代碼更加的直觀更好維護(hù),下面就來簡單講解Python編程中namedtuple類的用法
    2016-06-06
  • python?裝飾器(Decorators)原理說明及操作代碼

    python?裝飾器(Decorators)原理說明及操作代碼

    裝飾器(Decorators)是 Python 的一個重要部分,本文由淺入深給大家介紹了python?裝飾器Decorators原理,感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • Python tkinter進(jìn)度條控件(Progressbar)的使用

    Python tkinter進(jìn)度條控件(Progressbar)的使用

    這篇文章主要介紹了Python tkinter進(jìn)度條控件(Progressbar)的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Pandas中DataFrame常用操作指南

    Pandas中DataFrame常用操作指南

    DataFrame是pandas最常用的對象,其類似于excel中的表格,完成數(shù)據(jù)讀取后,數(shù)據(jù)就以DataFrame數(shù)據(jù)結(jié)構(gòu)存儲在內(nèi)存中,下面這篇文章主要給大家介紹了關(guān)于Pandas中DataFrame常用操作的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Python爬取城市租房信息實戰(zhàn)分享

    Python爬取城市租房信息實戰(zhàn)分享

    這篇文章主要介紹了Python爬取城市房租房信息實戰(zhàn)分享,先單線程爬蟲,測試可以成功爬取之后再優(yōu)化為多線程,最后存入數(shù)據(jù)庫,需要的小伙伴可以參考一下的相關(guān)資料
    2022-04-04
  • python目標(biāo)檢測給圖畫框,bbox畫到圖上并保存案例

    python目標(biāo)檢測給圖畫框,bbox畫到圖上并保存案例

    這篇文章主要介紹了python目標(biāo)檢測給圖畫框,bbox畫到圖上并保存案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python實現(xiàn)字符串逆序輸出的幾種方法

    python實現(xiàn)字符串逆序輸出的幾種方法

    本文介紹了四種在Python中實現(xiàn)字符串逆序輸出的方法,每種方法都有其優(yōu)缺點,下面就來介紹一下如何使用,感興趣的可以了解一下
    2024-12-12
  • PyTorch搭建多項式回歸模型(三)

    PyTorch搭建多項式回歸模型(三)

    這篇文章主要為大家詳細(xì)介紹了PyTorch搭建多項式回歸模型,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05

最新評論

安福县| 金昌市| 凭祥市| 娱乐| 黑河市| 商南县| 武夷山市| 个旧市| 娱乐| 灵石县| 屏山县| 文昌市| 白银市| 杭锦旗| 岳西县| 冷水江市| 丰顺县| 定州市| 永和县| 西安市| 临湘市| 鸡东县| 五寨县| 金阳县| 江西省| 全椒县| 马龙县| 五大连池市| 霍州市| 金平| 积石山| 绩溪县| 玛沁县| 龙岩市| 诸暨市| 新河县| 呼玛县| 重庆市| 马公市| 普陀区| 新丰县|