2015-02-11 88 views
0

我有一个很小的(70行)Python脚本,我需要一个包含脚本所有依赖关系的可执行文件。它应该可以在窗口上使用,其中python-magic仅适用于cygwin。无法编译具有依赖关系的Python脚本

现在我试着使用Nuitka,它给了我一个6MB的可执行文件,但它不能在Windows上执行,因为它表明它不是一个有效的可执行文件,没有关于它为什么不是有效的更多信息。

然后我被告知尝试cx_freeze,我无法安装。 Pip指出我的python版本不兼容。 (用pip和pip3试了一下,python安装的时候..)

我怎么能得到一个windows的可执行文件,包括我的python脚本写在Unix系统上的所有依赖关系。

Windows系统:Windows 8.1 64bit

Unix系统:Debian Testing; Python 2.7和3.4安装

+0

你运行的Python的版本?哪个版本的Windows? – Onedot618 2015-02-11 09:24:02

+0

我编辑了操作,抱歉。 – 2015-02-11 09:27:18

回答

0

我在Windows 8.1上使用python 2.7,pyinstaller工作得很好。 如果你想编译它可以在没有任何DLL文件或任何东西,你应该使用下面的命令pyinstaller被移植一个exe文件:

python pyinstaller.py --onefile your_script_file.py 
+0

我只是用一个包含'import magic;打印( '你好')'。用你的命令,我得到一个可执行文件(4MB) - 但是这个文件不能在我测试的Windows XP上运行。它声明''程序太大而不适合内存“# – 2015-02-11 10:12:00

+0

你是否在Windows机器上编译你的可执行文件? 如果你打算在windows计算机上运行该程序,请尝试在windows计算机上编译它,看看是否有效。 – Onedot618 2015-02-11 10:53:43

+0

我在debian jessie上编译它..这是最初的想法,所以我不必在Windows机器上运行'python-magic' ..但我会尽力去做。 – 2015-02-11 12:08:21

0

尝试Pyinstaller,它是非常有用的做任何可执行文件。如果你需要一个Windows可执行文件,你必须在Windows上编译它!

+0

我会尝试'pyinstaller',谢谢!在使用它来编译可移植可执行文件时,有什么需要注意的地方? – 2015-02-11 09:32:35

+0

为什么你需要一个可移植的可执行文件,如果python本身是可移植的?使用脚本...,添加'#!/ anv/python'并向文件添加可执行权限(在* nix'chmod x + a file.py')。这样,如果安装了python并且有库,则可以直接执行它。 – gunzapper 2015-02-11 10:06:01