不懂發(fā)布自己的python庫的方法?其實想解決這個問題也不難,下面讓小編帶著大家一起學習怎么去解決,希望大家閱讀完這篇文章后大所收獲。
為敘州等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及敘州網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站制作、做網(wǎng)站、外貿營銷網(wǎng)站建設、敘州網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
開發(fā)者可以通過python官方的第三方倉庫PyPI(Python Package Index)來發(fā)布自己開發(fā)的Python庫。方法是:1、新建一個項目文件夾和主程序;2、選擇合適的開源證書;3、編寫setup.py文件和使用文檔;4、發(fā)布。
前言與簡介
我想任何一個有追求的Python開發(fā)者在度過基礎階段后都想過發(fā)布自己的庫,也就是我們常說的造輪子,這是成為一個成熟Python開發(fā)者的第一步,在造輪子的過程中,無論是自己的編程能力還是為以后給開源項目貢獻代碼的能力都會得到很大提升。今天這篇博客,就來帶大家從0開始,向PyPI貢獻自己的開源庫。
進入正文之前先說一下自己造輪子的步驟:
主體程序設計與編寫編寫setup.py編寫使用文檔發(fā)布到PyPI
那么,PyPI是什么呢?
PyPI (Python Package Index) 是python官方的第三方庫的倉庫,所有人都可以下載第三方庫或上傳自己開發(fā)的庫到PyPI。PyPI推薦使用pip包管理器來下載第三方庫。截至目前,PyPI已經(jīng)有179,387個項目,很多知名項目如Django都發(fā)布在上面:
正文
主體程序編寫:
一般來說,自己造輪子無非是處于兩種目的,一是現(xiàn)有的輪子不能滿足自己的需求,二是為了鍛煉自己的能力,在這里,我們就不去編寫一個有實際用途的輪子了,請根據(jù)你自己的需求自行編寫,如果你無從下手,這里可以給一個我之前造的小輪子,跨平臺統(tǒng)計代碼行數(shù)的工具作為參考,項目地址:https://github.com/hj24/count-line
項目大體結構:
下面的主體程序代碼僅供示例,演示如何上傳自己的項目:
新建一個項目文件夾,mypackage,初始化成git倉庫。
新建主程序,test.py:
__version__ = '0.1.0'"""實現(xiàn)你自己的輪子的功能"""def main(): passif __name__ == '__main__': main()
編寫完成之后,將其上傳至Github,或其他代碼托管平臺。
選擇合適的開源證書
任何一個開源項目都應當選擇一個開源許可證,沒有 License 的內容是默認會被版權保護。所以如果你想要的是讓大家都放心使用,就需要選擇一個合適的 License ,只有這樣才能賦予任何人使用,分享和修改這個軟件的權力。
具體如何選擇,請看知乎的這篇回答:傳送門
總結一下就是:
MIT 最自由,沒有任何限制,任何人都可以售賣你的開源軟件,甚至可以用你的名字促銷。BSD 和 Apache 協(xié)議也很自由,跟 MIT 的區(qū)別分別是不允許用作者本人名義促銷和保護作者版權。GPL 最霸道,對代碼的修改部分也必須是 GPL 的,同時基于 GPL 代碼而開發(fā)的代碼也必須按照 GPL 發(fā)布,MPL 相對溫和一些,如果后續(xù)開發(fā)的代碼中添加了新文件,同時新文件中也沒有用到原來的代碼,那么新文件可以不必繼續(xù)沿用 MPL 。
一般來說,如果選擇MIT 協(xié)議就可以了。
編寫setup.py
setup.py是每個能從PyPi上能下載到的庫都有的文件,它是發(fā)布的關鍵所在。
網(wǎng)上的大部分教程都很復雜,新手很難看懂怎么編寫,好在kennethreitz大神幫我們解決了這個難題,他編寫了一個for human的setup.py模板,項目地址:傳送門,我們只需要把它復制過來,修改自己項目需要的地方即可,不需要額外的編寫setup.cfg等其他文件。
代碼請點擊傳送門查看(131行,就不復制了...),我們需要重點關注的是如下幾個部分:
項目的配置信息:
# Package meta-data. NAME = 'mypackage' DESCRIPTION = '填寫你的項目簡短描述. 'URL = 'https://github.com/你的github賬戶/mypackage' EMAIL = 'me@example.com' # 你的郵箱 AUTHOR = 'Awesome Soul' # 你的名字 REQUIRES_PYTHON = '>=3.6.0' # 項目支持的python版本 VERSION = '0.1.0' # 項目版本號
項目的依賴庫(沒有就不填):
# What packages are required for this module to be executed? REQUIRED = [ # 'requests', 'maya', 'records', ]
setup部分:
這里大部分內容都不用你填,只有以下幾個注意點
需要注意的是long_description這里默認是你項目的README.md文件
注釋掉的entry_points部分是用來生成命令行工具或者GUI工具的(理論上是跨平臺的),比如這里我生成了一個test的命令來代替test.py的main函數(shù),安裝成功以后就可以直接使用“test”命令:
python entry_points={ 'console_scripts': ['test=test:main'], },
如果你的項目文件夾下只有一個py文件來實現(xiàn)你的功能的話,需要將packages=find_packages(exclude=["tests", "*.tests", "*.tests.*", "tests.*"]),注釋掉,然后取消py_modules的注釋并進行相應修改。
setup( name=NAME, version=about['__version__'], description=DESCRIPTION, long_description=long_description, long_description_content_type='text/markdown', author=AUTHOR, author_email=EMAIL, python_requires=REQUIRES_PYTHON, url=URL, packages=find_packages(exclude=["tests", "*.tests", "*.tests.*", "tests.*"]), # If your package is a single module, use this instead of 'packages': # py_modules=['mypackage'], # entry_points={ # 'console_scripts': ['mycli=mymodule:cli'], # }, install_requires=REQUIRED, extras_require=EXTRAS, include_package_data=True, license='MIT', classifiers=[ # Trove classifiers # Full list: https://pypi.python.org/pypi?%3Aaction=list_classifiers 'License :: OSI Approved :: MIT License', 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: PyPy' ], # $ setup.py publish support. cmdclass={ 'upload': UploadCommand, },)
至此setup.py就完成了。
編寫使用文檔
一個好的項目,是需要有一個條理清晰的文檔的,至于如何編寫,就看你在README.md里怎么發(fā)揮了。
發(fā)布
先去 https://pypi.org 注冊一個屬于自己的賬號,記下賬號密碼。由于我們之前編寫好了setup.py,這里只要在項目的文件夾下運行python setup.py upload即可,中間需要你輸入賬號密碼。
至此,一個項目已經(jīng)上傳完畢了,只需pip install mypackage即可使用,下面擴展一下聊聊,怎么進行后續(xù)的維護。
項目的維護升級
有更新升級之后,首先要運行如下命令刪除dist文件夾中的舊版本打包文件,然后生成新文件:
sudo python setup.py sdist
之后,輸入以下命令,上傳新版本即可:
python setup.py upload
感謝你能夠認真閱讀完這篇文章,希望小編分享發(fā)布自己的python庫的方法內容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細的解決方法等著你來學習!
分享題目:發(fā)布自己的python庫的方法
標題網(wǎng)址:http://bm7419.com/article0/pschoo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿網(wǎng)站建設、品牌網(wǎng)站設計、用戶體驗、、網(wǎng)頁設計公司、響應式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)