常用工具代碼打包發佈成pypi庫

隨着深度學習的火熱,用python作爲主力開發的程序員越來越多,每個程序員基本都會寫一些自己的工具代碼,例如當分類任務時會根據文件夾生成對應的label文件,當檢測任務時會將voc_xml格式label轉成coco的json格式等等,這些工具代碼通常會被多次用到,如何將自己的工具代碼打包發佈,通過pip install numpy一樣一鍵安裝,像import numpy as np一樣如絲滑般一鍵調用呢?接下來ice_moyan會手把手教你如何打包到發佈。

step1. 註冊一個pypi賬號,至於如何註冊那就回憶一下當年的你是如何註冊QQ的基本就沒問題了。

step2. 給自己的包想好一個牛逼閃閃的包名,並且準備好自己的工具代碼。

接下來以我發佈的msctools包爲例:在msctools文件夾下建立msctools子文件夾,msctools子文件夾用來存放自己的工具代碼,如我在msctools子文件夾下存放了tools.py 和__init__.py;並且在msctools子文件夾同級目錄下新建一個setup.py文件,用來打包工具庫。

setup.py代碼內容如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from setuptools import setup, find_packages

setup(name='MSCTOOLS',
      version='0.0.0',
      description='moyan private tools',
      author='moyan',
      author_email='[email protected]',
      packages=find_packages(),
      include_package_data=True,
)

''''
name/version: 是整個項目的名字,打包後會使用此名字和版本號。
description: 是一個簡短的對項目的描述,一般一句話就好,會顯示在pypi上名字下端。
long_description: 是一個長的描述,相當於對項目的一個簡潔,如果此字符串是rst格式的,PyPI會自動渲染成HTML顯示。這裏可以直接讀取README.rst中的內容。
url: 包的連接,通常爲GitHub上的鏈接或者readthedocs的鏈接。
packages: 需要包含的子包列表,setuptools提供了find_packages()幫助我們在根路徑下尋找包,這個函數distutil是沒有的。
          需要處理的包目錄(包含__init__.py的文件夾) 
install_requires: 申明依賴包,安裝包時pip會自動安裝:格式如下(我上面的setup.py沒有這個參數,因爲我不依賴第三方包
      install_requires=[
        'Twisted>=13.1.0',
        'w3lib>=1.17.0',
        'queuelib',
        'lxml',
        'pyOpenSSL',
        'cssselect>=0.9',
        'six>=1.5.2',
        'parsel>=1.1',
        'PyDispatcher>=2.0.5',
        'service_identity',
    ]
py_modules 需要打包的python文件列表
'''

__init__.py代碼內容如下:

# !/usr/bin/env python
# -*- coding:utf-8 -*-

from .tools import *

tools.py代碼如下:(我最常用的工具代碼是sayhi)

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import sys

def sayhi():
    print('hello world!!!')

文件目錄結構如下:

step3. 編譯打包自己的tool庫

3.1  在主目錄下運行 python setup.py build

3.2  在主目錄下運行 python setup.py sdist 運行成功會在主目錄下主動生成dist目錄用來存放打包好的壓縮包

3.3  在主目錄下運行 python setup.py install  該步驟爲本地安裝,本地安裝完成可以用來測試你的工具是否已經學會了sayhi

此時顯示已經本地安裝完成,可以通過本地python進行測試:

成功學會sayhi說明本地打包通過,準備進行下一步上線發佈。

step4. 上線發佈

4.1 pip install twine

4.2 在當前電腦住的主目錄下新建一個存放自己pypi的配置文件,如ubuntu: touch ~/.pypirc  內容如下

[distutils]
index-servers = pypi

[pypi]
repository:https://pypi.python.org/pypi
username:username
password:pwd

4.3 運行 twine upload dist/*

上傳成功後,在你的pypi賬號Your projects下會出現該項目,如下

4.4 幾分鐘後(上傳後有個緩衝期,不能立馬進行pip安裝),找個新環境(或者電腦),直接pip install 就可以了,以上這個流程完成.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章