是否可以使安装工具在安装时将二进制文件设置为可执行文件

Is it possible to make setuptool to set a binary as exectuable when installed

我有三个二进制可执行文件,它们是为 OSX、Windows 和 Linux 编译的。将由 python 脚本调用,我的问题是该包是在 windows 机器上构建的,该机器从 OSX 和 [=38= 的二进制文件中剥离了文件属性].我正在寻找的是一种使 setuptools 在将文件复制到 python 包时将可执行属性设置为文件的方法。

所以我现在要安装包的是 MANIFEST.in 文件,其中包含:

recursive-include foo/bar/lib *%

其中包括三个文件夹 Linux、OSX 和 Windows

然后 setup.py:

from setuptools import setup, find_packages

setup(name='foobar',
      version='0.1',
      packages=find_packages(),
      include_package_data=True,
      install_requires=['foo','bar'],
      entry_points='''
              [console_scripts]
              foobar=foobar.cli:cli
      ''',
      )

我也用过

package_data={
      'lib': ['lib/*'],
   },
   include_package_data=True,

setup.py 之前,但我移到清单中,因为我希望它与 bdistsdist 一起工作。

所以我正在寻找的是确保在文件夹内调用 python install . 时安装的二进制文件上设置了 -x 标志。因为这不是作为 pip 包分发的。

你不能,没办法。 pip 是一个相当简单的包管理器,旨在安装 Python 库和随附的 Python 脚本。

tricks but they .

你需要一个真正的包管理器。

os.chmod(path_to_executable, <executable attribute> 添加到 setup.py 至少对我有用。