2016-12-02 110 views
0

我已經使用硒模塊在python中編寫了一個程序,並且我想將它發送給我的朋友,以便他可以試用它。有什麼方法可以將.py轉換爲可執行文件,以便他不必下載Selenium模塊和我使用的所有其他模塊?我在Windows 8.1上,他也是。將.py文件轉換爲exe

+3

http:// stackoverflow。com/questions/5458048/how-to-make-a-python-script-standalone-executable-to-run-without-any-dependency – galaxyan

回答

2

爲此,您可以使用PyInstallerhttp://www.pyinstaller.org/。 它同時支持Python 2和Python 3的

只要安裝它(https://pyinstaller.readthedocs.io/en/stable/installation.html),並按照這個官方說明:https://pyinstaller.readthedocs.io/en/stable/usage.html

在最簡單的情況下,將當前目錄到你的程序的MyScript的位置的.py和執行:

pyinstaller myscript.py


我自己的使用場景

對於結果文件夾,其中包括的x86(32位) EXE和其他所需文件:

"D:\Python35-32\Scripts\pyinstaller.exe" MY_SCRIPT_NAME.py --distpath "./x86/dist" --workpath "./x86/build" --specpath "./x86" 

這個cmd命令應該從程序MY_SCRIPT_NAME.py的位置上運行。 它將創建"./x86"文件夾兩個子文件夾:

  • "./x86/build" - 對建設過程中的臨時文件夾
  • "./x86/dist" - 結果文件夾,其中將包括所有需要的文件(EXE爲主,dll文件等)

對於結果文件夾,其包括X86-64(64位) EXE和其他所需的文件:

"D:\Python35\Scripts\pyinstaller.exe" MY_SCRIPT_NAME.py --distpath "./x86_64/dist" --workpath "./x86_64/build" --specpath "./x86_64" 

因此,大家可以看到,你應該使用合適的Python解釋器來產生特定的EXE:32位解釋器來生成32位EXE和64位解釋器來生成64位的EXE


可能的問題及其解決方案

如果結果EXE會提出一些有關「找不到DLL」的錯誤 - 這將意味着所需的DLL沒有被PyInstaller找到。

所以你需要找到它並手動將它放到你的"./x86/dist"文件夾(到你的主exe文件的位置)。

例如,這種類型的dll可以存儲在"C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs\x86"文件夾中(通常位於"C:\Program Files (x86)\Windows Kits\10\Redist"文件夾的不同子文件夾中)。如果你已經安裝了MS Visual Studio和Windows Kits,當然。

+0

Selenium不在[支持的軟件包](https:// github。 com/pyinstaller/pyinstaller/wiki /支持包)爲pyinstaller。但它是一個不完整的列表,所以它可能正常工作。 –