發表於 Python

【Python】PyPI 打包分享自己的套件! feat. Setuptools

就在剛剛我把我寫的小專案發到 PYPI 套件管理系統中心了!! (ノ>ω<)ノ
因為研究了一陣子,所以就上來寫一下筆記,用自己的語言紀錄一下以免下次忘記中間的細節。
所以接下來我分三大步驟說明:

  • 申請帳號
  • 設定 setup 相關文件
  • 上傳至PYPI

申請帳號:

當然阿!想要上傳就一定要先有帳號嘛!
第一步驟當然就是上 PYPI 註冊囉!

PYPI 註冊網頁

註冊需要的資料不多,大概就只有帳號密碼和信箱而已!
註冊好之後記得要去信箱認證喔!
不然會不給你上傳套件的!

設定 setup 相關文件:

接下來就是要在你的套件中設定上傳的資訊了!
這部份很麻煩要注意好喔!!
總共有個檔案要設定,就是下面這幾個:

  • setup.py
  • setup.cfg
  • .pypirc
  • 你的套件

下面這張圖就是我上傳的套件的架構
#btw 我的小專案就是 ascii_image這個套件啦
#他的功能就是把輸入的圖片用 ascii_art的方式輸出!XD
#好玩的小專案而已XD

#pip install ascii_image
ascii_image 套件的架構

setup.cfg:

先從這個開始介紹吧!
因為這個檔案就是單純的設定檔,所以在簡單的套件中我們就設定 描述檔就好了!

[metadata]
description-file = README.md

.pypirc

這個檔案可以設定如何在上傳時登入我們想要登入的套件管理系統
所以在這個檔案裡面設定我們要登入的套件管理系統名稱、帳號、密碼等等
範例在下面!
將這些打進檔案裡面就好了!

[distutils]
index-servers =
    pypi 

[pypi] 
username: 【你的帳號】
password: 【你的密碼】

setup.py

這邊設定最多了!
不過想要單純上傳不管其他設定的話其實很快的呢~
先上範例!

from setuptools import setup

setup(
    name='ascii_image',
    version='1.0',
    description='Make any image file to ascii art format.',
    url='https://github.com/Henry0526/ascii_image',
    author=【作者姓名】,
    author_email=【你的信箱】,
    install_requires=["numpy", "pillow"],
    license='MIT',
    packages=['ascii_image'],
    zip_safe=False,
    keywords=['ASCII-art', "image", "ascii"],
    classifiers=[
        'Development Status :: 5 - Production/Stable',
        'License :: OSI Approved :: MIT License',
        'Programming Language :: Python :: 3.5',
        'Programming Language :: Python :: 3.6',
    ]
)

在這裡面我們會用到 steuptools 這個內建的套件
我們一一解釋每個參數吧!

參數名稱 解釋
name 這就是上傳後供別人下載時的名稱。注意這邊盡量不要用到 「-」 喔 !!不然會造成程式上import錯誤的!
version 版本號,之後更新套件時就要增加這邊的版本號才可以上傳
url 別人可以去哪裡看這套件的網址
author 作者名稱
author_email 作者信箱
install_requires 你的套件相依套件有哪些?
license 使用規範!這個很重要!定義了開源的世界規則!!有機會的話我會寫一篇講解各種規範的,這邊先用很廣用的MIT規範。
packages 要上傳的是哪一個套件,因為我先打包成一個module放在資料夾中,所以我就寫那個module的名稱就好了。
zip_safe 很深層的影響(茶~)記得這樣做會讓套件被import的速度增加!
keywords 搜尋關鍵字 很字面上的意思XD
classifiers 這是固定的格式寫法,幫助PYPI更好的整理大家的套件喔!

上傳至PYPI:

很好很好!到這邊大家應該都做好準備了吧!
接下來這步驟很厲害!
也非常重要!!!
大家要注意跟上喔!!!!

python setup.py sdist upload

大功告成!XD
sdist 代表 Source Distributions(sdist) 就是原始碼包的意思!
這段跑完沒有錯的話就可以去 PYPI 搜尋自己的套件啦!
恭喜恭喜~

結尾:

到這邊大家應該都已經上傳自己的套件了吧~
如果成功的話,大家可以在下面留言自己的套件網址跟大家分享一下~
沒有的話,如果有遇到任何問題都可以在下方留言討論喔!
那這篇就到這邊啦!
我們下一篇再見囉~~
ㄅㄅ~

作者:

一位 熱愛資工領域、喜歡好笑事物、偶爾打打網球 的學生 ! For A Better Me!

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.