我有三个针对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
中,但是我移到清单以使其与bdist
和sdist
一起使用。
所以我要寻找的是确保在文件夹中调用-x
时安装的二进制文件上设置了python install .
标志。由于它不是作为pip包分发的。
答案 0 :(得分:1)
答案 1 :(得分:1)
将os.chmod(path_to_executable, <executable attribute>
添加到setup.py
中至少对我有用。