久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 如何開源你的Python庫

如何開源你的Python庫

來源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-11-07 06:57:56 1699311476

寫了一個(gè)Python庫。自己覺著這太棒了!如果讓人們能夠輕松使用它不是很優(yōu)雅么?這有一個(gè)需要考慮的清單,以及在開源Python庫時(shí)要采取的具體步驟。

1、源碼

將代碼放在GitHub上,這里有很多開源項(xiàng)目,并且人們很容易提交拉取請(qǐng)求。

2、許可證

選擇一個(gè)開源許可證。一般來說MIT許可證是一個(gè)挺好的寬容許可證。如果你有特定要求,CreativeCommon的選擇許可證可以指導(dǎo)你完成其它選擇。最重要的是,在選擇許可證時(shí)要記住三條規(guī)則:

不要?jiǎng)?chuàng)建自己的許可證。

不要?jiǎng)?chuàng)建自己的許可證。

不要?jiǎng)?chuàng)建自己的許可證。

3、README

將一個(gè)名為README.rst的文件(使用ReStructuredText格式化)放在項(xiàng)目樹的頂層。

GitHub將像Markdown一樣渲染ReStructuredText,而ReST在Python的文檔生態(tài)系統(tǒng)中的表現(xiàn)更好。

4、測(cè)試

寫測(cè)試。這對(duì)你來說沒有用處。但對(duì)于想要編寫避免破壞相關(guān)功能的補(bǔ)丁的人來說,它非常有用。

測(cè)試可幫助協(xié)作者進(jìn)行協(xié)作。

通常情況下,如果可以用pytest運(yùn)行就最好了。還有其他測(cè)試工具——但很少有理由去使用它們。

5、樣式

使用linter制定樣式:PyLint、Flake8或者帶上--check的Black。除非你使用Black,否則請(qǐng)確保在一個(gè)文件中指定配置選項(xiàng),并簽入到版本控制系統(tǒng)中。

6、API文檔

使用docstrings來記錄模塊、函數(shù)、類和方法。

你可以使用幾種樣式。我更喜歡Google風(fēng)格的docstrings,但ReSTdocstrings也是一種選擇。

Sphinx可以同時(shí)處理Google風(fēng)格和ReST的docstrings,以將零散的文檔集成為API文檔。

7、零散文檔

使用Sphinx。(閱讀我們這篇文章。)教程很有用,但同樣重要的是要指明這是什么、它有什么好處、它有什么壞處、以及任何特殊的考慮因素。

8、構(gòu)建

使用tox或nox自動(dòng)運(yùn)行測(cè)試和linter,并構(gòu)建文檔。這些工具支持“依賴矩陣”。這些矩陣往往會(huì)快速增長(zhǎng),但你可以嘗試針對(duì)合理的樣本進(jìn)行測(cè)試,例如Python版本、依賴項(xiàng)版本以及可能安裝的可選依賴項(xiàng)。

9、打包

使用setuptools工具。寫一個(gè)setup.py和一個(gè)setup.cfg。如果同時(shí)支持Python2和3,請(qǐng)?jiān)趕etup.cfg中指定universal格式的wheel。

tox或nox應(yīng)該做的一件事是構(gòu)建wheel并對(duì)已安裝的wheel進(jìn)行測(cè)試。

避免使用C擴(kuò)展。如果出于性能或綁定的原因一定需要它們,請(qǐng)將它們放在單獨(dú)的包中。正確打包C擴(kuò)展可以寫一篇新的文章。這里有很多問題!

10、持續(xù)集成

使用公共持續(xù)工具。TravisCI和CircleCI為開源項(xiàng)目提供免費(fèi)套餐。將GitHub或其他倉庫配置為在合并拉請(qǐng)求之前需要先通過檢查,那么你就不必?fù)?dān)心在代碼評(píng)審中告知用戶修復(fù)測(cè)試或樣式。

11、版本

使用SemVer或CalVer。有許多工具可以幫助你管理版本:incremental、bumpversion和setuptools_scm等都是PyPI上的包,都可以幫助你管理版本。

12、發(fā)布

通過運(yùn)行tox或nox并使用twine將文件上傳到PyPI上發(fā)布。你可以通過在DevPI中“測(cè)試上傳”。

以上內(nèi)容為大家介紹了如何開源你的Python庫,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://m.2667701.com/

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
了解Python語言中的時(shí)間處理

Python語言對(duì)于時(shí)間的處理繼承了C語言的傳統(tǒng),時(shí)間值是以秒為單位的浮點(diǎn)數(shù),記錄的是從1970年1月1日零點(diǎn)到現(xiàn)在的秒數(shù),這個(gè)秒數(shù)可以轉(zhuǎn)換成我們...詳情>>

2023-11-07 09:21:57
Python數(shù)據(jù)分析相關(guān)的技術(shù)

1.機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺Crab:靈活、快速的推薦引擎gensim:人性化的話題建模庫hebel:GPU加速的深度學(xué)習(xí)庫NuPIC:智能計(jì)算Numenta平臺(tái)pattern...詳情>>

2023-11-07 09:14:45
python隊(duì)列Queue

QueueQueue是python標(biāo)準(zhǔn)庫中的線程安全的隊(duì)列(FIFO)實(shí)現(xiàn),提供了一個(gè)適用于多線程編程的先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),即隊(duì)列,用來在生產(chǎn)者和消費(fèi)者線程...詳情>>

2023-11-07 08:24:21
Python和PHP的區(qū)別

從開發(fā)的角度來看,PHP是面向WEB的語言。PHP應(yīng)用程序更像是一組單獨(dú)的腳本,甚至只是一個(gè)單獨(dú)入口。而Python是多用途語言,也可以用于WEB開發(fā),...詳情>>

2023-11-07 08:02:45
Python爬蟲原理

簡(jiǎn)單來說互聯(lián)網(wǎng)是由一個(gè)個(gè)站點(diǎn)和網(wǎng)絡(luò)設(shè)備組成的大網(wǎng),我們通過瀏覽器訪問站點(diǎn),站點(diǎn)把HTML、JS、CSS代碼返回給瀏覽器,這些代碼經(jīng)過瀏覽器解析...詳情>>

2023-11-07 07:33:56