寫過 Python 程序的小伙伴們都知道,需要 import 個非 Python 自帶的軟件包時,都要用到 pip 這個程序。平時我們都是用 pip,如果我們寫好了一個程序,想讓大家都能用的到,那么是不是也可以通過 pip 發(fā)布出去呢?
答案當然是可以了,這篇文章我們就來看看如何用 pip 發(fā)布一個 python 程序。
1. 環(huán)境準備
要用 pip 發(fā)布 python 程序,首先當然是要安裝 Python 和 pip 這兩個軟件了,以 Ubuntu 16.04 為例:
$ sudo apt update $ sudo apt install -y python python-pip
CentOS 和 RedHat 因為 RPM 體系需要依賴于 python,更是默認就安裝好了。
另外發(fā)布 Pypi,還需要安裝一個發(fā)布工具, twine ,以及其所依賴的 setuptools、wheel:
$ sudo pip install --upgrade twine setuptools wheel
好,到這環(huán)境就已經(jīng)就緒了。
2. 注冊帳號
pip 上傳代碼包是最終保存在 https://pypi.org 這個網(wǎng)站上的,所以要用 pip 發(fā)布程序,就需要在這個網(wǎng)站上注冊一個帳號。
訪問該網(wǎng)址進行注冊: https://pypi.org/account/register/
注冊后還需要進行郵箱驗證,流程和普通網(wǎng)站沒有任何區(qū)別,所以具體步驟就不在這里詳細介紹了。
3. 代碼結(jié)構(gòu)
要發(fā)布 Python 程序,程序的結(jié)構(gòu)必須符合特定的要求,假設(shè)要發(fā)布的程序名為 example-pkg,基本的目錄結(jié)構(gòu)如下:
/example-pkg /example-pkg __init__.py setup.py LICENSE README.md
說一下目錄和文件的含義:
首先最外層要建立一個和發(fā)出程序同名的文件夾: /example-pkg 該文件夾下還要再簡歷一個同名文件夾,用來存放程序代碼: /example-pkg/example-pkg Python 的老規(guī)矩,example-pkg/example-pkg 目錄下當然要有一個__init__.py
文件。 /example-pkg 目錄下要有一個叫 setup.py 的文件,如果下載過 Python 代碼包,應(yīng)該都知道這個文件,需要通過這個文件進行 Python 代碼的編譯(可能會有依賴的其他代碼包或者依賴的 C 文件)和安裝。 LICENSE 文件:這個文件就是用來保存代碼所使用的開源許可證。 README.md:這個是軟件行業(yè)的慣例了,幫助文檔。對于 setup.py 文件,還有必要好好說說,先貼個例子,下面這個例子中,主要是實現(xiàn)了從 /example-pkg/example-pkg/__init__.py
文件中讀取 version 參數(shù),來配置當前軟件的版本,并指定了代碼包名(name)、作者(author)、郵箱(author_email)、描述信息(long_description、long_description_content_type)、依賴(install_requires),以及哪些文件不會被打包到程序中(exclude_package_data)。
另外需要提醒大家一點, 給程序起名字不要帶下劃線(_) ,python import 代碼包時,是不支持下劃線包名的,出現(xiàn)這種情況就比較尷尬,代碼裝上了,還是用不了。
新聞熱點
疑難解答