栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python发布模块

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python发布模块

distutils

https://docs.python.org/zh-cn/3.7/distutils/introduction.html

distutils可以用来在Python环境中构建和安装额外的模块。新的模块可以是纯Python的,也可以是用C/C++写的扩展模块,或者可以是Python包,包中包含了由C和Python编写的模块。

模块构建流程
  • 编写setup脚本(一般是setup.py)
  • 编写一个setup配置文件(可选)
  • 创建一个源码发布
  • 创建一个或多个构建(二进制)发布(可选)
setup脚本
from distutils.core import setup

setup(
    name='aaa',
    version='1.0.0',
    include_package_data=True,
    packages=['aaa', 'aaa.bbb'],
    package_dir={'aaa': 'src'},
    package_data={
        'aaa': ['bbb/*.config'],
    },
    data_files=[
        ('config', ['src/bbb/ccc.config']),
    ],
)
  • name 包名
  • version 版本
  • packages 导入包(包下所有py文件)
  • package_dir 包所在目录
  • package_data 静态文件(复制到相对目录)
  • data_files 静态文件(安装到指定python系统目录)
源码发布
python setup.py sdist

sdist命令会创建一个archive 文件(比如Unix上的tar文件,Windows上的zip文件),它包含setup.py, 源码文件。该archive文件命名为aaa-1.0.0.tar.gz(zip)

安装模块

用户希望安装aaa模块,他只需要下载aaa-1.0.0.tar.gz,解压,进入aaa-1.0.0目录,然后运行

python setup.py install

该命令最终会将foo.py复制到Python环境存放第三方模块的目录中

构建发布
python setup.py bdist
setuptools

setuptools是Python distutils增强版的集合,它可以帮助我们更简单的创建和分发Python包,尤其是拥有依赖关系的。

模块构建流程
  • 编写setup脚本(一般是setup.py)
  • 编写一个setup配置文件(可选)
  • 打包
  • 安装
setup脚本
from setuptools import setup, find_packages

setup(
    name='aaa',
    version='1.0.0',
    include_package_data=True,
    packages=find_packages('src'),
    install_requires=[
        'bbb>=0.10',
    ],
    # package_dir={'nxx': 'src'},
    # package_data={
    #     'nxx': ['log/*.config'],
    # },
    # data_files=[
    #     ('config', ['src/log/log.config']),
    # ],
)
  • name 包名
  • version 版本
  • include_package_data = True,启用清单文件MANIFEST.in包含数据文件
  • packages 导入包(包下所有py文件),find_packages(src)自动找到src目录下所有包
  • install_requires 自动安装依赖
  • package_dir 包所在目录
  • package_data 静态文件(复制到相对目录)
  • data_files 静态文件(安装到指定python系统目录)
打包
python setup.py bdist_egg

当前目录下的dist目录内创建一个egg文件,名为aaa-1.0-py3.7.egg(zip压缩文件), 文件名格式就是”应用名-版本号-Python版本.egg”。

当前目录多了”build”和”MyApp.egg-info”子目录来存放打包的中间结果。

安装
easy_install aaa-1.0-py3.7.egg
# 或者
easy_install aaa-1.0-py3.7.wheel
# 或者
pip install aaa-1.0-py3.7.wheel
# 或者
python setup.py install
通用命令
  • build 构建
  • sdist 源码分发
  • install 源码安装
  • bdist 可执行文件分发
  • bdist_egg egg文件分发
  • bdist_wheel wheel文件分发
tox

支持创建隔离的 Python 环境,在里面可以安装不同版本的 Python 解释器与各种依赖库,以此方便开发者做自动化测试、打包、持续集成等事情。

配置文件
  • pyproject.toml
  • tox.ini
  • setup.cfg
tox.ini
  • [tox]下面是全局性的配置项,envlist 字段定义了 tox 操作的环境
  • [xxx]下面是 xxx 虚拟环境的配置项,[xxx:yyy]继承 xxx 的配置,同时其自身配置项的优先级更高
  • 常用的配置项有:description(描述信息)、basepython(Python解释器版本)、deps(环境依赖项)、commands(命令语句)等等
  • 内置的基础变量{toxinidir}、{homedir}、{envname}、{envdir}
  • 操作系统的环境变量:{env:KEY},效果等同于os.environ['KEY']
工作流程
  • 配置(figuration):加载配置文件(如 tox.ini),解析命令行参数,读取系统环境变量等
  • 打包(packaging):可选的,对于带有 setup.py 文件的项目,可以在这步去生成它的源发行版
  • 创建虚拟环境:默认使用 virtualenv 来创建虚拟环境,并根据配置项中的“deps”安装所需的依赖项,然后执行配置好的命令(commands)
  • 报告(report):汇总所有虚拟环境的运行结果并罗列出来
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/853981.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号