Python 打包:需要非 python 二进制文件或如果它们不存在则安装它们?

Python Packaging: Requiring non-python binaries or installing them if they are not there?

我正在编写一个包,其中包含一个非 python 程序,我和我的团队经常需要自动化该程序。我将其与 setuptools 打包在一起,并希望将其提供给我们的其他开发人员或我们的运营团队。

这是我想要做的。它包装的程序显然需要在那里才能让我的模块工作。所以,我想我需要 setuptools 来检查它是否已安装,如果没有,请安装它。

有没有办法在 setup() 中执行此操作,或者该步骤是否需要手动(或由其他东西处理)?或者...这应该只是留在模块中的东西吗?大约 50MB,所以不是很大。

您的程序需要安装或者您有便携版?

如果它是可移植的,您可以使用相对路径触发它,然后在编译的 python 脚本中重新创建相同的结构。

folder/
 main.py
 bin/
   file.exe

假设您想从 main.py

中调用您的二进制文件
# main.py
import os

# get the current directory dynamically
base_dir = os.getcwd()
# create the file path
file_path = os.path.join(base_dir, 'bin',  'file.exe')
# run the file
os.system(file_path)

编译文件后,您应该在目标中创建文件夹 bin 并复制到您的 file.exe