簡體   English   中英

如何將 .py 轉換為 Python 的 .exe?

[英]How can I convert a .py to .exe for Python?

我正在嘗試將一個相當簡單的 Python 程序轉換為可執行文件,但找不到我想要的東西,所以我有幾個問題(我正在運行 Python 3.6):

到目前為止我發現的這樣做的方法如下

  1. 下載舊版本的 Python 並使用pyinstaller/py2exe
  2. 在 Python 3.6 中設置一個虛擬環境,這將允許我做 1.
  3. 下載 Python 到 C++ 轉換器並使用它。

這是我嘗試過的/遇到的問題。

  • 我在需要下載之前安裝了pyinstaller (pypi-something),所以它不起作用。 下載必備文件后, pyinstaller仍然無法識別它。
  • 如果我在 Python 2.7 中設置 virtualenv,我真的需要安裝 Python 2.7 嗎?
  • 同樣,我看到的唯一 python 到 C++ 轉換器只能在 Python 3.5 之前工作——如果嘗試這樣做,我是否需要下載並使用這個版本?

在 Python 3.6 中將 .py 轉換為 .exe 的步驟

  1. 安裝Python 3.6
  2. 安裝 cx_Freeze,(打開命令提示符並輸入pip install cx_Freeze
  3. 安裝 idna,(打開命令提示符並輸入pip install idna
  4. 編寫一個名為myfirstprog.py.py程序。
  5. 在腳本的當前目錄中創建一個名為setup.py的新 python 文件。
  6. setup.py文件中,復制下面的代碼並保存。
  7. 按住 shift 右鍵單擊​​同一目錄,這樣您就可以打開命令提示符窗口。
  8. 在提示符中,鍵入python setup.py build
  9. 如果您的腳本沒有錯誤,那么創建應用程序就沒有問題。
  10. 檢查新創建的文件夾build 它里面有另一個文件夾。 在該文件夾中,您可以找到您的應用程序。 運行。 讓自己快樂。

請參閱我的博客中的原始腳本。

設置.py:

from cx_Freeze import setup, Executable

base = None    

executables = [Executable("myfirstprog.py", base=base)]

packages = ["idna"]
options = {
    'build_exe': {    
        'packages':packages,
    },    
}

setup(
    name = "<any name>",
    options = options,
    version = "<any number>",
    description = '<any description>',
    executables = executables
)

編輯:

  • 確保您應該使用第 4 步中創建的.py擴展文件名,而不是myfirstprog.py
  • 您應該將.py中的每個import ed 包包含到packages列表中(例如: packages = ["idna", "os","sys"]
  • setup.py文件中的any name, any number, any description都不應保持不變,您應該相應地對其進行更改(例如: name = "<first_ever>", version = "0.11", description = ''
  • 在開始第 8 步之前,必須安裝import的包。

PyInstaller 支持 Python 3.6。

在 Python 文件夾中打開一個 cmd 窗口(打開一個命令窗口並使用cd或按住 shift 鍵,在 Windows 資源管理器上右鍵單擊它並選擇“在此處打開命令窗口”)。 然后輸入

pip install pyinstaller

就是這樣。

使用它的最簡單方法是在命令提示符下輸入

pyinstaller file_name.py

有關如何使用它的更多詳細信息,請查看此問題

GitHub 上有一個名為 auto-py-to-exe 的開源項目。 實際上它也只是在內部使用 PyInstaller,但由於它有一個簡單的 GUI 來控制 PyInstaller,它可能是一個舒適的選擇。 與其他解決方案相比,它還可以輸出獨立文件。 他們還提供了一個視頻,展示了如何設置它。

圖形用戶界面:

自動 Py 到 Exe

輸出:

輸出

或者直接使用 pyinstaller:

pip install pyinstaller
pyinstaller filename

我不能告訴你什么是最好的,但我過去成功使用的一個工具是cx_Freeze 他們最近(2017 年 1 月 7 日)更新到版本 5.0.1,它支持 Python 3.6。

這是pypi https://pypi.python.org/pypi/cx_Freeze

該文檔顯示,根據您的需要,有不止一種方法可以做到這一點。 http://cx-freeze.readthedocs.io/en/latest/overview.html

我還沒有嘗試過,所以我將指向一篇討論了簡單方法的帖子。 不過,有些事情可能已經改變,也可能沒有改變。

如何使用 cx_freeze?

現在您可以使用 PyInstaller 對其進行轉換。 它甚至適用於 Python 3。

腳步:

  1. 啟動你的電腦
  2. 打開命令提示符
  3. 輸入命令pip install pyinstaller
  4. 安裝后,使用命令“cd”進入工作目錄。
  5. 運行命令pyinstaller <filename>

我一直在將 Nuitka 和 PyInstaller 與我的包 PySimpleGUI 一起使用。

Nuitka讓 tkinter 與 Nuikta 一起編譯存在問題。 項目貢獻者之一開發了一個腳本來解決這個問題。

如果您不使用 tkinter,它可能對您“有效”。 如果您使用的是 tkinter,請這樣說,我會嘗試發布腳本和說明。

PyInstaller我正在運行 3.6,PyInstaller 運行良好! 我用來創建我的 exe 文件的命令是:

pyinstaller -wF myfile.py

-wF 將創建單個 EXE 文件。 因為我所有的程序都有一個 GUI 並且我不想顯示命令窗口,所以 -w 選項將隱藏命令窗口。

這與運行看起來像用 Python 編寫的 Winforms 程序一樣接近。

[2019 年 7 月 20 日更新]

有使用 PyInstaller 的基於 PySimpleGUI GUI 的解決方案。 它使用 PySimpleGUI。 它叫做pysimplegui-exemaker ,可以通過 pip 安裝。

pip install PySimpleGUI-exemaker

安裝后運行它:

python -m pysimplegui-exemaker.pysimplegui-exemaker

最好和最簡單的方法肯定是auto-py-to-exe ,我已經給出了下面的所有步驟和危險信號,您只需 5 分鍾即可獲得最終的 .exe 文件,因為您無需學習任何東西使用它。

1.) 我猜在某些設備上它可能不適用於 python 3.9。

2.) 在安裝 python 時,如果您選擇了“將 python 3.x 添加到路徑”,請從開始菜單打開命令提示符,您必須輸入pip install auto-py-to-exe來安裝它。 您必須在命令提示符下按 enter 才能獲得您正在輸入的行的結果。

3.) 安裝后,在命令提示符下,您只需鍵入auto-py-to-exe即可打開它。 它將打開一個新窗口。 第一次可能需要一分鍾。 此外,關閉命令提示符也會關閉 auto-py-to-exe,所以在准備好 .exe 文件之前不要關閉它。

4.) 將有用於制作 .exe 文件所需的一切按鈕,並在下面共享它的屏幕截圖。 此外,對於圖標,您需要一個 .ico 文件而不是圖像,因此要轉換它,您可以使用https://convertio.co/

5.) 如果您的腳本使用外部文件,您可以通過 auto-py-to-exe 添加它們,並且在腳本中,您必須對其路徑進行一些更改。 首先,如果還沒有寫,你必須寫import sys ,其次,你必須為例如location=getattr(sys,"_MEIPASS",".")+"/"創建一個變量,第三,示例的位置。如果它不在任何文件夾中,則 png 將是location+"/example.png"

6.) 如果它顯示任何錯誤,可能是因為名為 setuptools 的模塊不是最新版本。 要將其升級到最新版本,在命令提示符下,您必須編寫pip install --upgrade setuptools 此外,在腳本中,編寫import setuptools可能會有所幫助。 如果 setuptools 的版本超過 50.0.0,那么一切都應該沒問題。

7.) 完成所有這些步驟后,在 auto-py-to-exe 中,轉換完成后,.exe 文件將位於您選擇的文件夾中(默認情況下,它是 'c:/users/name /output') 或者如果你有一個,它會被你的殺毒軟件刪除。 每個防病毒軟件都有不同的方法來恢復文件,所以如果您不知道,請嘗試一下。

以下是如何使用 auto-py-to-exe 的簡單 GUI 來制作 .exe 文件。

在此處輸入圖像描述

PyOxidizer可以是這里的一個選項。 它在 Github 上受到 3.3k 星的歡迎。 它的文件說

PyOxidizer 能夠生成單個文件可執行文件 - 具有 Python 的副本及其所有靜態鏈接的依賴項以及嵌入在可執行文件中的所有資源(如 .pyc 文件)。 您可以將單個可執行文件復制到另一台機器並運行其中包含的 Python 應用程序。 它只是工作。

雖然我不確定它是否能夠生成 .exe 文件 PyOxidizer 肯定有助於打包和分發。

暫無
暫無

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

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