摘要:本文主題如下編寫一個包源代碼,但不是本文的重點。發布包,發布的包可以有多種類型。查看為了生成和發布包,必須編寫文件,編寫該文件必須依賴于包,這個包本身也是一個包。編寫測試文件然后運行配置為了發布包,必須在注冊一個用戶,注冊郵箱需要驗證。
本文主題如下:
編寫一個包(Python 源代碼),但不是本文的重點。
編譯包,觀察編譯后的文件。
發布包,發布的包可以有多種類型。
如何在 Pypi 中查看已發布的包
注意:
本文編寫的包在 Python2 環境下測試通過,實際上這個包(只是個例子)比較簡單,在 Python3 下也能運行。
本文知識點可能陳舊,比如 Python Pypi 官方已做了很大改變。
1. 編寫包源代碼這篇文章主要描述如何發布一個包,不描述如何編寫一個包,如果你沒有代碼(只想學習如何發布包),可下載下面的示例。
$ wget "https://files.pythonhosted.org/packages/96/66/43e6df87373557553be2b4343db27d008c6dcefa110ccff38cba1459ca07/ywdblogmath-0.1.tar.gz"2. 查看 setup.py
為了生成和發布包,必須編寫 setup.py 文件,編寫該文件必須依賴于 setuptools 包,這個包本身也是一個 Python 包。.
#!/usr/bin/env python from setuptools import setup setup(name="ywdblogmath", version="0.1", description="A silly ywdblogmath package", author="ywdblog", author_email="ywdblog@gmail.com", url="http://www.yudadan.com/", packages=["ywdblogmath", "ywdblogmath.adv"], )
望文生義,不過多講解相應的參數。
3. 測試本地包首先將該代碼生成一個本地包,然后編寫代碼測試該包的功能。
在開發模式下安裝包:
$ python setup.py develop
觀察安裝后生成的文件:
/usr/local/lib/python2.7/dist-packages/ywdblogmath.egg-link /usr/local/lib/python2.7/dist-packages/easy-install.pth 這二個文件包含的內容就是 /root/python(一個軟連接)。
編寫測試文件 example.py :
import sys import ywdblogmath print(ywdblogmath.add(4,5)) print(ywdblogmath.division(4, 2)) print(ywdblogmath.multiply(10, 5)) print(ywdblogmath.squareroot(48))
然后運行 example.py:
$ python example.py 9 2 50 6.92820323028.4. 配置 pypi
(1)為了發布包,必須在 pypi.org 注冊一個用戶,注冊郵箱需要驗證。
(2)配置 $HOME”.pypirc” 文件:
[distutils] index-servers=pypi [pypi] repository = https://upload.pypi.org/legacy/ username = pypi.org 登錄名 password = pypi.org 登陸密碼5. 發布包
在發布包之前,運行下列命令了解所有可用的命令:
$ python setup.py --help-commands
先編譯包:
$ python setup.py build
運行完成后生成 /root/python/build 目錄,所以編譯的文件保存在該目錄下。
(1)生成 tar.gz 包
$ python setup.py sdist
運行后產生下列文件:
/root/python/dist/ywdblogmath-0.1.tar.gz
/root/python/ywdblogmath.egg-info (python setup.py egg_info 命令也會生成該文件)
(2)生成 egg 包
$ python setup.py bdist_egg
運行后產生下列文件:
/root/python/dist/ywdblogmath-0.1-py2.7.egg
/root/python/ywdblogmath.egg-info (python setup.py egg_info 命令也會生成該文件)
(3)生成 wheel 包
$ python setup.py bdist_wheel
運行后產生下列文件:
/root/python/dist/ywdblogmath-0.1-py2-none-any.whl
/root/python/ywdblogmath.dist-info
最后發布包(任何一個命令都可以):
# 發布 .tar.gz 包 $ python setup.py sdist upload # 發布 egg 包 $ python setup.py bdist_egg upload # 發布 wheel 包 $ python setup.py bdist_wheel upload
至于發布什么類型的包,讀者自己決定,如果想讓所有的包安裝工具(比如 pip、easy_install )都能安裝你發布的包,可同時發布這三種類型的包。
登錄 pypi.org 查看發布的包
在發布包的時候,可能會遇到很多命令行提示的錯誤,這些內容不是本文的重點,另外注意 setpy.py 中的包版本號,可以測試發布多版本的包。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42188.html
摘要:如果是的安裝,從官網下載后雙擊,可能會有下圖的提示同樣也是不斷的點擊繼續最后就是安裝完成了同樣輸入測試使用安裝完成之后,在開始菜單中選擇啟動啟動可能要花些時間。 Anaconda是一個開源的Python發行版本,其包含了conda、Python等180多個科學包及其依賴項。其包含的科學包有...
摘要:下面我就以最近開發的數字鍵盤為例,一一列出具體步驟寫基礎模塊代碼注冊賬號配置配置添加單元測試完善發布足可以完成一個,是為了開發一個高質量的。徽章分別表示是否構建成功代碼測試覆蓋率版本號下載量開源證書,看起來逼格滿滿有木有。 寫在前面 沒有發布過npm包的同學,可能會對NPM對開發有一種蜜汁敬畏,覺得這是一個很高大上的東西。甚至有次面試,面試官問我有沒有發過npm包,當時只用過還沒寫過,...
摘要:命令行工具,即。我們在寫命令行工具的時候,需要指定一個可執行文件?;蛘咚恼{試我們全局安裝一個包后,可以全局調用這個命令行工具。 命令行工具,即 Cli(command-line interface)。是在圖形用戶界面得到普及之前使用最為廣泛的用戶界面,它通常不支持鼠標,用戶通過鍵盤輸入指令,計算機接收到指令后,予以執行。在學習這篇教程之前,你需要先了解NodeJs,NPM和一些常用的...
摘要:關于本教程有任何建議或者疑問,都歡迎郵件與我聯系,或者在上提出教程流程簡介教程將會從如何分析微信協議開始,第一部分將教你如何從零開始獲取并模擬擴展個人微信號所需要的協議。 現在的日常生活已經離不開微信,難免會生出微信有沒有什么API可以使用的想法。 那樣就可以拿自己微信做個消息聚合、開個投票什么的,可以顯然沒有這種東西。 不過還好,有網頁版微信不就等于有了API么,這個項目就是出于這個...
摘要:利用強大的語言制作屬于自己的第一張詞云。還有一件很有意思的事情,和的中文意思,都是蟒蛇。好,接下來進入正題,一步一步實現我們的第一張詞云。但是我們如果要對中文進行分析,還必須要借助中文分詞技術。 相信很多人在網上,或者是在一些報告或者ppt上,都看到過類似這種圖片 showImg(https://segmentfault.com/img/bVQRr0?w=1920&h=919); 你可...
閱讀 3688·2021-11-19 09:56
閱讀 1467·2021-09-22 15:11
閱讀 1126·2019-08-30 15:55
閱讀 3371·2019-08-29 14:02
閱讀 2911·2019-08-29 11:07
閱讀 433·2019-08-28 17:52
閱讀 3172·2019-08-26 13:59
閱讀 435·2019-08-26 13:53