是否可以使安装工具在安装时将二进制文件设置为可执行文件
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
之前,但我移到清单中,因为我希望它与 bdist
和 sdist
一起工作。
所以我正在寻找的是确保在文件夹内调用 python install .
时安装的二进制文件上设置了 -x
标志。因为这不是作为 pip 包分发的。
你不能,没办法。 pip
是一个相当简单的包管理器,旨在安装 Python 库和随附的 Python 脚本。
人 tricks but they .
你需要一个真正的包管理器。
将 os.chmod(path_to_executable, <executable attribute>
添加到 setup.py
至少对我有用。
我有三个二进制可执行文件,它们是为 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
之前,但我移到清单中,因为我希望它与 bdist
和 sdist
一起工作。
所以我正在寻找的是确保在文件夹内调用 python install .
时安装的二进制文件上设置了 -x
标志。因为这不是作为 pip 包分发的。
你不能,没办法。 pip
是一个相当简单的包管理器,旨在安装 Python 库和随附的 Python 脚本。
人
你需要一个真正的包管理器。
将 os.chmod(path_to_executable, <executable attribute>
添加到 setup.py
至少对我有用。