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

时间:2019-04-24 13:36:03

标签: python setuptools setup.py

我有三个针对OSX,Windows和Linux编译的二进制可执行文件。这将由python脚本调用,我的问题是该程序包是在Windows计算机上构建的,该计算机从OSX和Linux的二进制文件中剥离文件属性。我正在寻找的是一种使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一起使用。

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

2 个答案:

答案 0 :(得分:1)

您不能,不可能。 pip是一个相当简单的软件包管理器,旨在安装 Python 库和随附的 Python 脚本。

人们try会骗人,但它们don't work

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

答案 1 :(得分:1)

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