是否可以执行 bash 脚本来下载非 python 对`pip install my-package`的依赖

Is it possible to execute a bash script to download non-python dependencies on `pip install my-package`

我有一个 python 包 my-package 依赖于二进制文件 binary.exe 但是这个二进制文件太大无法上传到 pypi。因此,我想在用户执行 pip install ... 时执行一个 bash 脚本,这将 wget 我的 github 中的二进制文件并将其放在他们的 site-packages/my-package 文件夹中。这可能吗?如果是这样,我将如何去做呢?

您可以采用的一种方法是在您的包本身中添加代码以获取二进制文件,这样每次导入它时,它都会首先下载二进制文件。您可以使用 requests, or you can simply run your wget command using the subprocess 模块执行此操作,但请求方法更可靠。

没有办法。 pip 远远落后于像 deb/rpm 这样的真正的包命名; pip-installable 软件包相当原始,它们没有 pre/post-(un)install 脚本。

您必须使用 PyInstaller、py2exe、py2app 或 cx_Freeze 创建自己的安装程序。或者说 deb/rpm — 有用于 setuptools 的插件来生成 debs 和 rpms。