[Python學習筆記] - 製作第三方包Package

writing……

前言

參考信息

https://www.jianshu.com/p/19f1e564a29d
https://www.jianshu.com/p/00abb504e137
https://blog.csdn.net/winycg/article/details/80025432
https://www.cnblogs.com/potato-chip/p/9106225.html 《setup參數詳解》
https://www.cnblogs.com/cposture/p/9029023.html 《Python 包構建教程》

基礎概念

module

  • pure python modulepython模塊。python編寫,一個module對應的就是一個.py文件。
  • extension module擴展模塊。用底層語言編寫的,如c/c++,java等。
  • package包。有__init__.py文件的文件夾,改文件夾內所有module的集合。
  • __init__.py的目錄表示包,沒有則表示普通目錄。

__all__

可以指定批量引入。在.py文件,如果不聲明__all__,則模塊中所有的變量和函數均可以使用。如果使用了__all__from module import *的組合,則只能部分可見。

私有變量/方法

  • from xxx import *不能導入或使用私有變量及方法。(以單下劃線或雙下劃線爲前綴)
  • import xxx能導入或使用私有變量及方法。
# module.py
__all__ = ['a']
a = 1
b = 2
def f():
    print("hello")
import module
a # 可見
b # 可見
f() # 可見
from module import *
a # 可見
b # 不可見
f() # 不可見

目錄結構

setup

在頂層目錄需要有一個setup.py文件,用來編輯package的基礎信息,
setup.py參數(常用的)

  • Name:打包文件的名稱。
  • version:版本號。
  • author:作者。
  • author_email:聯絡郵箱。
  • license:開源協議類型。
  • package:打包的文件夾。如文件夾a有子文件夾b,則以a.b表示。
  • install_requires:需要安裝的依賴包。

示例


安裝/發佈

PyPi

打包及安裝

工具包

  1. setuptools
  2. wheel

壓縮包格式

python setup.py sdistpython setup.py bdist,將所有內容打包,放於dist目錄下。

whl格式

pip wheel --wheel-dir=輸出目錄 打包目錄,如pip wheel --wheel-dir=./dist ./表示將當前目錄打包並輸出至dist目錄。
或者python setup.py bdist_wheel,生成build,dist,egg-info目錄,whl在dist目錄裏。

安裝whl

pip install xxxx.whl

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