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 module
python模塊。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
打包及安裝
工具包
- setuptools
- wheel
壓縮包格式
python setup.py sdist
或python 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