成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

發(fā)布自己的python庫的方法-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!

專注于為中小企業(yè)提供網(wǎng)站建設(shè)、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)蟠龍免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了1000多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

不懂發(fā)布自己的python庫的方法?其實(shí)想解決這個問題也不難,下面讓小編帶著大家一起學(xué)習(xí)怎么去解決,希望大家閱讀完這篇文章后大所收獲。

開發(fā)者可以通過python官方的第三方倉庫PyPI(Python Package Index)來發(fā)布自己開發(fā)的Python庫。方法是:1、新建一個項(xiàng)目文件夾和主程序;2、選擇合適的開源證書;3、編寫setup.py文件和使用文檔;4、發(fā)布。

前言與簡介

我想任何一個有追求的Python開發(fā)者在度過基礎(chǔ)階段后都想過發(fā)布自己的庫,也就是我們常說的造輪子,這是成為一個成熟Python開發(fā)者的第一步,在造輪子的過程中,無論是自己的編程能力還是為以后給開源項(xiàng)目貢獻(xiàn)代碼的能力都會得到很大提升。今天這篇博客,就來帶大家從0開始,向PyPI貢獻(xiàn)自己的開源庫。

進(jìn)入正文之前先說一下自己造輪子的步驟:

主體程序設(shè)計與編寫編寫setup.py編寫使用文檔發(fā)布到PyPI

那么,PyPI是什么呢?

PyPI (Python Package Index) 是python官方的第三方庫的倉庫,所有人都可以下載第三方庫或上傳自己開發(fā)的庫到PyPI。PyPI推薦使用pip包管理器來下載第三方庫。截至目前,PyPI已經(jīng)有179,387個項(xiàng)目,很多知名項(xiàng)目如Django都發(fā)布在上面:

發(fā)布自己的python庫的方法正文

主體程序編寫:

一般來說,自己造輪子無非是處于兩種目的,一是現(xiàn)有的輪子不能滿足自己的需求,二是為了鍛煉自己的能力,在這里,我們就不去編寫一個有實(shí)際用途的輪子了,請根據(jù)你自己的需求自行編寫,如果你無從下手,這里可以給一個我之前造的小輪子,跨平臺統(tǒng)計代碼行數(shù)的工具作為參考,項(xiàng)目地址:https://github.com/hj24/count-line

項(xiàng)目大體結(jié)構(gòu):

發(fā)布自己的python庫的方法

下面的主體程序代碼僅供示例,演示如何上傳自己的項(xiàng)目:

  1. 新建一個項(xiàng)目文件夾,mypackage,初始化成git倉庫。

  2. 新建主程序,test.py:

__version__ = '0.1.0'"""實(shí)現(xiàn)你自己的輪子的功能"""def main():
  passif __name__ == '__main__':
    main()

編寫完成之后,將其上傳至Github,或其他代碼托管平臺。

選擇合適的開源證書

任何一個開源項(xiàng)目都應(yīng)當(dāng)選擇一個開源許可證,沒有 License 的內(nèi)容是默認(rèn)會被版權(quán)保護(hù)。所以如果你想要的是讓大家都放心使用,就需要選擇一個合適的 License ,只有這樣才能賦予任何人使用,分享和修改這個軟件的權(quán)力。

具體如何選擇,請看知乎的這篇回答:傳送門

總結(jié)一下就是:

MIT 最自由,沒有任何限制,任何人都可以售賣你的開源軟件,甚至可以用你的名字促銷。BSD 和 Apache 協(xié)議也很自由,跟 MIT 的區(qū)別分別是不允許用作者本人名義促銷和保護(hù)作者版權(quán)。GPL 最霸道,對代碼的修改部分也必須是 GPL 的,同時基于 GPL 代碼而開發(fā)的代碼也必須按照 GPL 發(fā)布,MPL 相對溫和一些,如果后續(xù)開發(fā)的代碼中添加了新文件,同時新文件中也沒有用到原來的代碼,那么新文件可以不必繼續(xù)沿用 MPL 。

一般來說,如果選擇MIT 協(xié)議就可以了。

編寫setup.py

setup.py是每個能從PyPi上能下載到的庫都有的文件,它是發(fā)布的關(guān)鍵所在。

網(wǎng)上的大部分教程都很復(fù)雜,新手很難看懂怎么編寫,好在kennethreitz大神幫我們解決了這個難題,他編寫了一個for human的setup.py模板,項(xiàng)目地址:傳送門,我們只需要把它復(fù)制過來,修改自己項(xiàng)目需要的地方即可,不需要額外的編寫setup.cfg等其他文件。

代碼請點(diǎn)擊傳送門查看(131行,就不復(fù)制了...),我們需要重點(diǎn)關(guān)注的是如下幾個部分:

  • 項(xiàng)目的配置信息:

# Package meta-data.
NAME = 'mypackage'
DESCRIPTION = '填寫你的項(xiàng)目簡短描述.
'URL = 'https://github.com/你的github賬戶/mypackage'
EMAIL = 'me@example.com'    # 你的郵箱
AUTHOR = 'Awesome Soul'     # 你的名字
REQUIRES_PYTHON = '>=3.6.0' # 項(xiàng)目支持的python版本
VERSION = '0.1.0'           # 項(xiàng)目版本號
  • 項(xiàng)目的依賴庫(沒有就不填):

# What packages are required for this module to be executed?
REQUIRED = [
    # 'requests', 'maya', 'records',
]
  • setup部分:
    這里大部分內(nèi)容都不用你填,只有以下幾個注意點(diǎn)

  1. 需要注意的是long_description這里默認(rèn)是你項(xiàng)目的README.md文件

  2. 注釋掉的entry_points部分是用來生成命令行工具或者GUI工具的(理論上是跨平臺的),比如這里我生成了一個test的命令來代替test.py的main函數(shù),安裝成功以后就可以直接使用“test”命令:
    python entry_points={ 'console_scripts': ['test=test:main'], },

  3. 如果你的項(xiàng)目文件夾下只有一個py文件來實(shí)現(xiàn)你的功能的話,需要將packages=find_packages(exclude=["tests", "*.tests", "*.tests.*", "tests.*"]),注釋掉,然后取消py_modules的注釋并進(jìn)行相應(yīng)修改。

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就完成了。

編寫使用文檔

一個好的項(xiàng)目,是需要有一個條理清晰的文檔的,至于如何編寫,就看你在README.md里怎么發(fā)揮了。

發(fā)布

先去 https://pypi.org 注冊一個屬于自己的賬號,記下賬號密碼。由于我們之前編寫好了setup.py,這里只要在項(xiàng)目的文件夾下運(yùn)行python setup.py upload即可,中間需要你輸入賬號密碼。

至此,一個項(xiàng)目已經(jīng)上傳完畢了,只需pip install mypackage即可使用,下面擴(kuò)展一下聊聊,怎么進(jìn)行后續(xù)的維護(hù)。

項(xiàng)目的維護(hù)升級

  • 有更新升級之后,首先要運(yùn)行如下命令刪除dist文件夾中的舊版本打包文件,然后生成新文件:

sudo python setup.py sdist

  • 之后,輸入以下命令,上傳新版本即可:

python setup.py upload

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享發(fā)布自己的python庫的方法內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!

網(wǎng)站欄目:發(fā)布自己的python庫的方法-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://jinyejixie.com/article28/dijhcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航關(guān)鍵詞優(yōu)化、企業(yè)建站、網(wǎng)站營銷、網(wǎng)站排名、營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
海南省| 嘉义市| 连州市| 永川市| 喀喇沁旗| 巴彦淖尔市| 桑植县| 红安县| 屯门区| 盘锦市| 平阴县| 宿州市| 当涂县| 冷水江市| 延津县| 宿松县| 北宁市| 高平市| 伊金霍洛旗| 磴口县| 陇南市| 泽库县| 广饶县| 彰化县| 周口市| 大埔区| 济南市| 红原县| 进贤县| 喀喇| 青冈县| 托里县| 郓城县| 沾益县| 五台县| 崇左市| 庆城县| 门源| 旌德县| 临海市| 黄山市|