簡體   English   中英

如何在Python中創建可執行文件?

[英]How to make an executable file in Python?

我想制作我的Python應用程序的可執行文件(.exe)。

我想知道如何做到這一點,但請記住:我使用C ++ DLL!

我是否必須將DLL與.exe放在一邊或者還有其他方法嗎?

py2exe可以生成單個文件可執行文件。 請參閱此鏈接以獲取示例。

我使用的setup.py使用以下選項組合:

'compressed': 1,
 'optimize':2,
 'bundle_files': 1

我通常在可執行文件所在的同一文件夾中添加外部dll(pe msvcr71.dll)。

為了便於分發並在生成exe后自動安裝,您可以使用Inno Setup創建一個安裝程序,將您的exe和dll以及其他文檔(自述文件等)放入應用程序目錄中

請遵循以下步驟:您可以在此站點中找到此文檔。

1)安裝PyInstaller:

假設您在此目錄中安裝了PIP c:\\ PythonXX \\ Scripts,如果沒有,請訪問此站點並查看有關如何“安裝Python索引項目(PIP)”的說明。 轉到命令提示符並鍵入以下命令。

  • cd c:\\ Python27 \\ Scripts轉到此目錄按Enter鍵
  • 然后鍵入 - > pip install pyinstaller再次按Enter鍵
  • 這應該成功安裝PyInstaller!
  • Obs:安裝完成后,您不需要在Scripts文件夾中安裝pyinstaller,因為我們需要PIP來安裝pyinstaller文件。 為了使事情更有條理,我通常將pyinstaller文件移動到另一個文件夾。 要移動pysintaller文件,請轉到pyinstaller文件所在的Scripts文件夾,並查找以“pyi”開頭的所有文件,您還可以查看“修改日期”列以查看同時創建的文件。 它應該是24個pyi文件,在您運行上面的腳本時創建。 將這些文件復制到您選擇的另一個文件夾中我通常在C:\\驅動器中創建一個文件夾,並將其稱為“CreateExecutables”,其中包含名為“pyinstaller_files”的另一個文件夾。

2)安裝PyWin32:

轉到此站點並查找名為pywin32-218.win32-py2.7.exe 2.7的可執行文件,該文件用於32位系統,用於python27查找與您對應的系統。 運行可執行文件,它應該成功安裝PyWin32,它與pyinstaller攜手合作!

3)創建單個可執行文件

現在您已經擁有了PyInstaller和PyWin32,您可以開始創建單個可執行文件。 單個可執行文件將在另一個名為“dist”的文件夾中創建,此文件夾也是在運行pyinstaller命令時動態創建的。 為了清楚你的pyinstaller文件被你復制到另一個可能被稱為“pyinstaller_files”文件夾的文件夾,所以現在在命令提示符下鍵入以下命令。

  • c:\\ python27 \\ CreateExecutables \\ pyinstaller_files> pyinstaller --onefile c:\\ test \\ test1 \\ yourscript.py
  • Obs:yourscript.py的目錄是你的pydev模塊所在的位置。

4)概述

上面的命令將在pyinstaller_files文件夾中創建一個名為“dist”的文件夾,該文件夾將包含您的單個可執行文件“yourscript.exe”。 您現在可以將單個可執行文件移動到您選擇的位置,並使用“yourscript.spec”文件刪除“dist”和“build”文件夾,因為不再需要它們來運行您的單個可執行文件。

使用py2exe 您可以將DLL放在與最終EXE相同的文件夾中,它應該可以正常加載。

我使用以下每個工具從Python 2.7代碼構建了exe文件:

  • Cython(帶--embed選項)
  • Nuitka
  • Py2exe

這些都將產生一個獨立的exe。 您的安裝人員必須包含必要的CRT dll。 您的最終結果將與典型用戶的任何其他exe無法區分。

前兩個首先編譯為C,然后使用您安裝的任何編譯器將其編譯為最終的exe。 Py2Exe將Python和所有.pyo文件捆綁到一個zip中,它嵌入到exe中。 啟動時,它會解壓縮到temp目錄並從那里運行python。 您需要將您的dll添加到.spec文件中,以便它包含在zip資源中。 或者,在exe旁邊安裝你的dll並使用python中的絕對路徑加載它。

看看pyinstaller 它應該為您找到(並相應地發布)這些依賴項。

cx_Freeze也是一個很好的。

cx_Freeze是一組用於將Python腳本凍結為可執行文件的腳本和模塊

PyInstaller是最好的選擇,因為它在Windows和Linux上運行良好。 如果您使用的是arch linux ,請使用以下鏈接: PyInstaller或嘗試yaourt pyinstaller

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM