gpt4 book ai didi

python - pip包中如何打包shell脚本

转载 作者:太空狗 更新时间:2023-10-30 01:18:59 27 4
gpt4 key购买 nike

我有一个用于所有模块的通用 shell 脚本。

所有模块都安装了一个名为 common 的公共(public) pip。脚本是这样的

common
utils
scripts
build
generic_build.sh

我看到有一种方法可以通过使用 scriptsconsole_scripts 参数添加到 setup.py 来安装 python 脚本。但是 sh 文件似乎被忽略了。这意味着它们最终不会出现在已安装的软件包中。

有什么想法吗?

最佳答案

通过将 Shell 脚本添加到 scripts 列表中,可以将它们捆绑在一个发行版中,就好像它们是 python 脚本一样。示例:

# bash_scripts/spam.sh
#!/usr/bin/env bash
echo Running "$0"

用于打包 spam.sh 的简单设置脚本:

# setup.py
from setuptools import setup

setup(
name='spam',
scripts=['bash_scripts/spam.sh']
)

构建源代码和二进制文件包括 spam.sh:

$ python setup.py bdist_wheel | grep spam.sh
copying bash_scripts/spam.sh -> build/scripts-3.6
copying build/scripts-3.6/spam.sh -> build/bdist.linux-aarch64/wheel/spam-0.0.0.data/scripts
changing mode of build/bdist.linux-aarch64/wheel/spam-0.0.0.data/scripts/spam.sh to 755
adding 'spam-0.0.0.data/scripts/spam.sh'

$ python setup.py sdist | grep spam.sh
copying bash_scripts/spam.sh -> spam-0.0.0/bash_scripts

安装完成后,查看是否包含shell脚本:

$ pip install dist/spam-0.0.0.tar.gz
...
$ pip show -f spam
Name: spam
Version: 0.0.0
Summary: UNKNOWN
Home-page: UNKNOWN
Author: UNKNOWN
Author-email: UNKNOWN
License: UNKNOWN
Location: /data/gentoo64/home/u0_a82/.local/lib64/python3.6/site-packages
Requires:
Files:
<b>../../../bin/spam.sh</b>
spam-0.0.0.dist-info/DESCRIPTION.rst
spam-0.0.0.dist-info/INSTALLER
spam-0.0.0.dist-info/METADATA
spam-0.0.0.dist-info/RECORD
spam-0.0.0.dist-info/WHEEL
spam-0.0.0.dist-info/metadata.json
spam-0.0.0.dist-info/top_level.txt

关于python - pip包中如何打包shell脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50794064/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com