2017-07-11 135 views
0

我編譯了一個.py文件的exe文件,但問題是它是200mb + 我想刪除無用的軟件包(例如我沒有使用的scipy)。PyInstaller:不能排除模塊

我還沒有清楚PyInstaller的正確語法。

讓我們從頭開始......平時我做CMD:

cd myFolder 
C:\Python27\Scripts\Pyinstaller.exe MyFile.py 

,這讓我在dist文件夾中的exe文件。

如果我想設置一些正確的配置方式嗎?

C:\Python27\Scripts\Pyinstaller.exe MyFile.py Config.py 

C:\Python27\Scripts\Pyinstaller.exe Config.py 

,因爲在網上我發現他們兩個,但我無法分辨。

如果它是最後一個我試圖運行:

lock_cipher = None 
a = Analysis(['Main.py'], 
    pathex=['C:\Users\myname\Desktop\myFolder'], 
    binaries=None, 
    datas=None, 
    hiddenimports=[], 
    hookspath=None, 
    runtime_hooks=None, 
    excludes=None, 
    cipher=block_cipher) 
a.binaries = [x for x in a.binaries if not x[0].startswith("scipy")] 
pyz = PYZ(a.pure, a.zipped_data, 
    cipher=block_cipher) 
exe = EXE(pyz) 
coll = COLLECT(exe) 

但它不工作。我錯在哪裏?

回答

3

我的建議是,你使用的虛擬env只包含所需的模塊。這是一個更好的開發實踐。

此外,您還可以使用--exclude-module標誌列出所有你要排除的模塊。 (Pyinstaller automatically includes unneeded modules

+0

感謝你有什麼關注點1和命令--exclude模塊將被包含在cmd中有很好的指導?沒有辦法用我發佈的代碼修復它。非常感謝 – Thegamer23

+0

你可以在這裏看到答案:https://pythonhosted.org/PyInstaller/usage.html – brotherperes