一个用于构建完全自包含Python zipapp的命令行工具。
项目描述
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 查看哈希)