【问题标题】:Is it possible to make setuptool to set a binary as exectuable when installed安装时是否可以使 setuptool 将二进制文件设置为可执行文件
【发布时间】:2019-04-24 13:36:03
【问题描述】:

我有三个针对 OSX、Windows 和 Linux 编译的二进制可执行文件。这将由 pythonscript 调用,我的问题是该软件包是在 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 中,但我移到了 manifest,因为我希望它可以与 bdistsdist 一起使用。

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

【问题讨论】:

    标签: python setuptools setup.py


    【解决方案1】:

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

    人们 try 耍花招,但他们 don't work

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

    【讨论】:

    • 感谢您确认我的怀疑:)
    • 一个问题是将os.chmod(path_to_executable, <executable attribute> 添加到 setup.py 不起作用?
    【解决方案2】:

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

    【讨论】:

    • 仅适用于 sdist。不适用于轮子,因为轮子安装不使用setup.py(在打包时使用)。
    猜你喜欢
    • 2021-07-25
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    • 2013-12-02
    • 2010-09-24
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    相关资源
    最近更新 更多