[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:需要安装的依赖包。

示例

# example for ta-lib
import setuptools

requires  = {
	"install_requires": ["numpy"],
	"setup_requires": ["numpy"]
	}

setuptools.setup(
    name='TA-Lib',
    version='0.4.24',
    description='Python wrapper for TA-Lib',
    long_description=long_description,
    long_description_content_type='text/markdown',
    author='John Benediktsson',
    author_email='mrjbq7@gmail.com',
    url='http://github.com/mrjbq7/ta-lib',
    download_url='https://github.com/mrjbq7/ta-lib/releases',
    license='BSD',
    classifiers=[
        "License :: OSI Approved :: BSD License",
        "Development Status :: 5 - Production/Stable",
        "Operating System :: Unix",
        "Operating System :: POSIX",
        "Operating System :: MacOS :: MacOS X",
        "Operating System :: Microsoft :: Windows",
        "Programming Language :: Python",
        "Programming Language :: Python :: 2",
        "Programming Language :: Python :: 2.7",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.3",
        "Programming Language :: Python :: 3.4",
        "Programming Language :: Python :: 3.5",
        "Programming Language :: Python :: 3.6",
        "Programming Language :: Python :: 3.7",
        "Programming Language :: Python :: 3.8",
        "Programming Language :: Python :: 3.9",
        "Programming Language :: Cython",
        "Topic :: Office/Business :: Financial",
        "Topic :: Scientific/Engineering :: Mathematics",
        "Intended Audience :: Developers",
        "Intended Audience :: Science/Research",
        "Intended Audience :: Financial and Insurance Industry",
    ],
    packages=['talib'],
    ext_modules=ext_modules,
    cmdclass=cmdclass,
    install_requires=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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值