2015-02-11 93 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