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