跳转到主要内容

Jupyter包装工具。

项目描述

Jupyter打包

帮助构建和安装需要预先构建步骤(可能包括JavaScript构建步骤)的Jupyter Python包的工具。

安装

pip install jupyter-packaging

用法

在另一个包中使用 jupyter-packaging 有三种方式。通常,您不应将 jupyter_packaging 作为运行时依赖项依赖,而应仅作为构建依赖项。

作为构建需求

使用 pep-518 中概述的 pyproject.toml 文件。示例

[build-system]
requires = ["jupyter_packaging>=0.10,<2"]
build-backend = "setuptools.build_meta"

以下是一个使用上述配置的 setup.py 示例。它假设您的其余元数据位于 setup.cfg 中。我们使用 try/catch 包装导入,以便可以在没有 jupyter_packaging 的情况下运行文件,以便可以直接运行 python setup.py 而不是在构建时。

from setuptools import setup

try:
    from jupyter_packaging import wrap_installers, npm_builder
    builder = npm_builder()
    cmdclass = wrap_installers(pre_develop=builder, pre_dist=builder)
except ImportError:
    cmdclass = {}

setup(cmdclass=cmdclass))

作为构建后端

使用 jupyter_packaging 构建后端。预构建命令在 pyproject.toml 中指定为元数据。

[build-system]
requires = ["jupyter_packaging>=0.10,<2"]
build-backend = "jupyter_packaging.build_api"

[tool.jupyter-packaging.builder]
factory = "jupyter_packaging.npm_builder"

[tool.jupyter-packaging.build-args]
build_cmd = "build:src"

相应的 setup.py 将大大简化

from setuptools import setup
setup()

tool.jupyter-packaging.builder 部分期望一个 func 值,该值指向一个可导入的模块和一个点分隔的函数。如果没有提供,则不会运行任何预构建函数。

可选的 tool.jupyter-packaging.build-args 部分接受要传递给预构建命令的关键字参数字典。

构建后端不处理 develop 命令(pip install -e .)。如果需要,您可以仅对该命令进行包装

import setuptools

try:
    from jupyter_packaging import wrap_installers, npm_builder
    builder = npm_builder(build_cmd="build:dev")
    cmdclass = wrap_installers(pre_develop=builder)
except ImportError:
    cmdclass = {}

setup(cmdclass=cmdclass))

可选的 tool.jupyter-packaging.options 部分接受以下选项

  • skip-if-exists:当本地文件存在时导致预构建跳过的文件列表
  • ensured-targets:运行 dist 命令时应存在的本地文件路径列表

作为供应商文件

setupbase.pysetup.py 一起本地供应商,并直接导入模块。

import setuptools
from setupbase import wrap_installers, npm_builder
func = npm_builder()
cmdclass = wrap_installers(post_develop=func, pre_dist=func)
setup(cmdclass=cmdclass)

使用说明

  • 此包不支持已弃用的 python setup.py bdist_wheelpython setup.py sdist 命令,PyPA 建议使用 build 包(pip install build && python -m build .)。
  • 我们建议使用 include_package_data=TrueMANIFEST.in 来控制包含在 中的资产。
  • 可以使用如 check-manifestmanifix 这样的工具来确保包含所需的资产。
  • 简单的 data_files 使用可以在 setup.cfgsetup.py 中处理。如果需要递归目录,请使用此包中的 get_data_files()
  • 遗憾的是,data_files 不在 develop 模式下受支持(setuptools 的限制)。您可以在开发安装之前执行完整安装(pip install .),或者添加一个脚本将数据文件推送到 sys.base_prefix

开发安装

git clone https://github.com/jupyter/jupyter-packaging.git
cd jupyter-packaging
pip install -e .[test]
pre-commit install

您可以通过创建以下 pyproject.toml 来测试本地更改,替换为本地 git 检出的路径

[build-system]
requires = ["jupyter_packaging@file://<path-to-git-checkout>"]
build-backend = "setuptools.build_meta"

注意:每次更改都需要运行 pip cache remove jupyter_packaging,以防止 pip 使用源缓存的版本。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

jupyter_packaging-0.12.3.tar.gz (25.4 kB 查看散列值)

上传时间

构建分布

jupyter_packaging-0.12.3-py3-none-any.whl (15.7 kB 查看散列值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面