2010-09-08 44 views
7

所以我有一个依赖于几个模块的python脚本。特别是焦虑和pyinoitify。我知道你可以在windows中编译一个python脚本到.exe中,但是在linux中有没有相对等价的东西?我不关心它是一个二进制文件,我只是希望能够分发我的脚本,而不需要单独安装pexpect和pyinotify。这可能/值得吗?在linux中编译python脚本

回答

6

cx_Freeze是一种将Python脚本“冻结”为独立二进制形式的跨平台方法。根据他们的网站:

cx_Freeze是一组脚本和 模块为多,py2exe和py2app做同样的方式 冻结Python脚本 成可执行文件。不像 这两个工具,cx_Freeze是交叉 平台,应该可以在任何Python本身工作的 平台上工作。 它需要Python 2.3或更高版本,因为它使用在 版本中引入的zip导入 工具,因为它使用 。

1

一般来说,如果第一行是

#!/usr/bin/env python 

和文件有 “X” 的模式设置(chmod +x yourfile.py

然后,它的可执行文件。无需编译。

是的,人们必须安装你所依赖的东西。 (a)更简单,(b)如果他们确实进行了安装,那么他们就不那么令人惊讶了,所以他们知道发生了什么。

+2

问题是关于分发脚本及其依赖关系,而不仅仅是执行脚本。 – katrielalex 2010-09-08 20:15:23

0

在linux中,尽量避免这样的事情。大多数软件包管理器都很好地处理依赖关系,只是分发你的脚本并告诉它需要什么依赖关系。

+1

包管理器与python模块有什么关系? – Falmarri 2010-09-12 05:20:52

+0

将你的模块作为一个包进行分发,并声明它所需的其他模块包的依赖关系。问题解决了(尽管不可移植)。 – tripleee 2013-12-31 06:55:31