跳转到主要内容

一个用于构建完全自包含Python zipapp的命令行工具。

项目描述

pypi ci codecov docs license supported

snake

shiv

shiv是一个命令行工具,用于构建按照PEP 441概述的完全自包含Python zipapp,但包含了所有依赖项!

shiv的主要目标是使分发Python应用程序变得快速简单。

📗 完整文档可以在这里找到。

系统要求

  • python3.6+
  • linux/osx/windows

快速入门

shiv有一些自己的命令行选项,并接受几乎所有可以传递给pip install的选项。

简单的命令行示例

使用shiv创建flake8的可执行文件

$ shiv -c flake8 -o ~/bin/flake8 flake8
$ ~/bin/flake8 --version
3.7.8 (mccabe: 0.6.1, pycodestyle: 2.5.0, pyflakes: 2.1.1) CPython 3.7.4 on Darwin

-c flake8指定当可执行文件运行时应调用的控制台脚本,-o ~/bin/flake8指定生成的可执行文件的位置,而flake8是从PyPI安装的依赖项。

使用boto库创建交互式可执行文件

$ shiv -o boto.pyz boto
Collecting boto
Installing collected packages: boto
Successfully installed boto-2.49.0
$ ./boto.pyz
Python 3.7.4 (v3.7.4:e09359112e, Jul  8 2019, 14:54:52)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> import boto
>>> boto.__version__
'2.49.0'

安装

您可以通过从https://github.com/linkedin/shiv/releases下载发布版本或通过pip / pypi安装shiv。

pip install shiv

您甚至可以使用shiv创建shiv的pyz!

python3 -m venv .
source bin/activate
pip install shiv
shiv -c shiv -o shiv shiv

开发

我们欢迎贡献!启动开发很容易

git clone git@github.com:linkedin/shiv.git
cd shiv
python3 -m venv venv
source ./venv/bin/activate
python3 -m pip install --upgrade build
python3 -m build
python3 -m pip install -e .

别忘了运行和编写测试

python3 -m pip install tox
tox

在更改了docs中的内容时构建文档

python3 -m pip install -r docs/requirements.txt
sphinx-build docs build/html

注意事项

使用shiv创建的zipapps不保证与其他架构兼容。例如,在Mac上构建的pyz文件可能只能在其他Mac上运行,同样适用于RHEL等。这通常仅适用于包含C扩展的依赖项的zipapps。如果所有依赖项都是纯Python,那么pyz在其它平台上的运行可能性很大。只是需要注意这一点。

使用shiv创建的zipapps将会提取到~/.shiv目录中,除非通过SHIV_ROOT覆盖。如果您使用shiv创建了多个工具,您可能需要偶尔清理此目录。


致谢

类似项目

标志由Juliette Carvalho设计

项目详情


下载文件

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

源分布

shiv-1.0.6.tar.gz (32.1 kB 查看哈希)

上传时间

构建分布

shiv-1.0.6-py2.py3-none-any.whl (20.3 kB 查看哈希)

上传时间 Python 2 Python 3

支持者