一文詳解python如何將編寫的模塊打包上傳至pypi_第1頁
一文詳解python如何將編寫的模塊打包上傳至pypi_第2頁
一文詳解python如何將編寫的模塊打包上傳至pypi_第3頁
一文詳解python如何將編寫的模塊打包上傳至pypi_第4頁
一文詳解python如何將編寫的模塊打包上傳至pypi_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

第一文詳解python如何將編寫的模塊打包上傳至pypi目錄什么是pypi注冊pypipython打包格式打包上傳至pypi基本工具安裝使用build進行打包使用twine上傳至pypi從pypi下載包測試代碼總結(jié)本文所依賴的環(huán)境為:

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

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

什么是pypi

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

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

pip3installflask

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

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

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

注冊pypi

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

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

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

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

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

往下滑,找到【APItokens】

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

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

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

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

python打包格式

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

在進行打包之前,我們需要創(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@"},

description="AsimpleWSGI-compliantwebapplicationlayerframework"

readme="README.md"

requires-python="=3.7"

classifiers=[

"ProgrammingLanguage::Python::3",

"License::OSIApproved::MITLicense",

[project.urls]

"Homepage"="/pdudo/golearn/blob/master/python/PackagingTesting"

"BugTracker"="/pdudo/golearn/issues"

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

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

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

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

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

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

打包上傳至pypi

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

基本工具安裝

安裝打包工具build

pip3installbuild

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

pip3installbuild-i/simple

使用build進行打包

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

python3-mbuild

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

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

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

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

使用twine上傳至pypi

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

python3-mtwineupload--repositorytestpypidist/*--verbose

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

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

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

從pypi下載包測試代碼

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

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

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

在瀏覽器進行測試后,可得

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

總結(jié)

本篇文章介紹了什么是pypi,以及打包的格式,最后打包完畢后,將包上傳至pypi。這里有幾個細(xì)節(jié)可以注意一下,當(dāng)我們打包后,會得到一個dist目錄,在該目錄下,有一個結(jié)尾為.whl的文件,我們可以直接通過pipinstall跟上文件名來安裝一下包,若包沒問題后,我們就可以上

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論