2011-08-10 26 views
4

我使用setuptools來創建一個雞蛋,我想包括一些輔助的二進制文件,最好是安裝在egg目錄中。當我的雞蛋部署一些輔助二進制文件時,如何讓setuptools設置可執行位?

我可以使用data_filespackage_data包含這些文件,但可執行位在部署時未設置。

或者,我可以使用scripts,但是它們會(默認情況下)部署到所有其他包共享的公用目錄,我希望避免這種情況。

如何將這些二進制文件與我的包一起部署並確保其文件模式得到保留?

回答

3

在Linux中放置輔助二進制文件的常用(標準)位置是/usr/libexec。所以你可以使用data_files選項創建一個目錄。在源代碼中創建文件+ x,並保留權限。只是把類似

data_files=[(os.path.join(sys.prefix, 'libexec', 'myproject'), glob("libexec/*"))], 

在您的設置功能,並在您的項目libexec目錄。

+1

我想將這些文件保存在我的egg目錄中,這樣egg就完全自包含了,並且像刪除目錄這樣的操作擺脫了所有的操作,而不是把東西留在中央目錄,比如'/ usr/libexec' ... –

+0

這就是軟件包管理者的用處。或卸載程序。不幸的是,我不認爲setuptools支持卸載。您也可以建立一個RPM或dpkg,而不是雞蛋。然後你安裝它,並選擇卸載。這就是軟件在Linux平臺上的管理方式。 – Keith

相關問題