[英]package_data files with executable permissions
我正在使用distutils來創建一個Python(2)包安裝程序。 在我的包中有一些二進制可執行文件,可以從我的Python代碼中調用。 我在setup.py
文件中將這些列為package_data
,因此它們隨包一起安裝。 但是,distutils在安裝這些文件時不會復制這些文件的可執行權限位。 有沒有辦法強制distutils安裝具有可執行權限的package_data
文件?
根據其他一些SO答案計算出來 - 以下工作:
class my_install_lib(distutils.command.install_lib.install_lib):
def run(self):
distutils.command.install_lib.install_lib.run(self)
for fn in self.get_outputs():
if <this is one of the binaries I want to be executable>:
# copied from distutils source - make the binaries executable
mode = ((os.stat(fn).st_mode) | 0555) & 07777
distutils.log.info("changing mode of %s to %o", fn, mode)
os.chmod(fn, mode)
然后將cmdclass={'install_lib':my_install_lib}
傳遞給setup
。
您也可以使用setuptools而不是distutils。 setuptools保留package_data文件的文件模式,而distutils則不保存。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.