Python 在使用egg部署一些支持的二进制文件时,如何让setuptools设置可执行位?
我正在使用setuptools创建一个egg,我想在其中包含一些支持的二进制文件,最好安装在egg目录中 我可以将这些文件与Python 在使用egg部署一些支持的二进制文件时,如何让setuptools设置可执行位?,python,linux,setuptools,Python,Linux,Setuptools,我正在使用setuptools创建一个egg,我想在其中包含一些支持的二进制文件,最好安装在egg目录中 我可以将这些文件与数据\u文件或包\u数据一起包含,但是在部署这些文件时未设置可执行位 或者,我可以使用脚本,但是它们(默认情况下)将被部署到一个公共目录,该目录由所有其他包共享,我希望避免这样做 如何在包中部署这些二进制文件并确保保留它们的文件模式?在Linux中放置支持二进制文件的常用(标准)位置是/usr/libexec。所以您可以使用data_files选项在其下创建一个目录。在源代
数据\u文件
或包\u数据
一起包含,但是在部署这些文件时未设置可执行位
或者,我可以使用脚本
,但是它们(默认情况下)将被部署到一个公共目录,该目录由所有其他包共享,我希望避免这样做
如何在包中部署这些二进制文件并确保保留它们的文件模式?在Linux中放置支持二进制文件的常用(标准)位置是/usr/libexec
。所以您可以使用data_files选项在其下创建一个目录。在源代码中设置文件+x,应保留权限。只是放一些像
data_files=[(os.path.join(sys.prefix, 'libexec', 'myproject'), glob("libexec/*"))],
在您的设置函数中,以及项目中的
libexec
目录中。我希望将文件保存在我的egg目录中,以便egg完全独立,删除目录之类的操作可以摆脱一切,而不是把东西留在中央目录中,比如/usr/libexec
…这就是包管理器的用途。或卸载程序。不幸的是,我认为setuptools还不支持卸载。您还可以创建RPM或dpkg,而不是鸡蛋。然后安装它,并选择卸载。这就是在Linux平台上管理软件的方式。