[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

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