用于构建完全自包含的python zipapp的命令行实用程序。
shiv的Python项目详细描述
shiv
shiv是一个命令行实用程序,用于构建完全独立的python zipapp,如PEP 441中所述,但包含了它们的所有依赖项!
shiv的主要目标是使分发python应用程序变得快速和简单。
完整的文档可以找到here。
系统要求
- Python3.6+
- Linux/OSX/Windows
如何
shiv有一些自己的命令行选项,并接受几乎所有可以通过pip install
的选项。
简单的cli示例
使用shiv:
创建pipenv的可执行文件$ shiv -c pipenv -o ~/bin/pipenv pipenv pew
$ ~/bin/pipenv --version
pipenv, version 2018.05.18
涉及车轮缓存的复杂示例
使用下载的boto控制盘创建交互式可执行文件:
$ python3 -m pip download boto Collecting boto File was already downloaded /tmp/tmp.iklsO1qyd3/boto-2.48.0-py2.py3-none-any.whl Successfully downloaded boto $ shiv -o boto.pyz --find-links . --no-index boto shiv! ? Collecting boto Installing collected packages: boto Successfully installed boto-2.48.0 done $ ./boto.pyz Python 3.6.1 (default, Apr 192017, 21:58:41)[GCC 4.8.5 20150623(Red Hat 4.8.5-4)] on linux Type "help", "copyright", "credits" or "license"for more information. (InteractiveConsole) >>> import boto >>>
安装
您可以通过pip
/pypi
pip install shiv
您甚至可以使用shiv创建一个pyz的shiv!
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 setup.py venv
. activate
python3 setup.py develop
不要忘记运行和编写测试:
pip install tox tox
有问题
使用shiv创建的zipapp不能保证与其他架构交叉兼容。例如,a pyz
在mac上构建的文件可能只在其他mac上工作,类似于rhel等。这通常只适用于在其依赖项中具有c扩展名的zipapp。如果您的所有依赖项都是纯python,那么pyz
有可能在其他平台上工作。只是一些需要注意的事情。
使用shiv创建的zipapps将自己提取到~/.shiv
,除非通过
SHIV_ROOT
。如果您使用shiv创建了许多实用程序,您可能需要偶尔清理这个
目录。
确认
类似项目:
Juliette Carvalho的徽标