Python編譯成exe__Python

來源:互聯網
上載者:User
python的編譯有多種好處,其中主要有提高運行速度、代碼保密

方式1:編譯成pyc檔案(二進位的檔案)

速度有所提高。我的一個代碼從150s變成了130s。 操作方法:開啟cmd,進入py檔案的目錄,輸入下面命令
           python3 -m py檔案名稱
           python3 -O -m py_compile py檔案名稱  #這個也可以
      完成後,目前的目錄下會出現一個__pycache__檔案夾,編譯後的二進位檔案pyc就在裡面
 
方式2:編譯成exe檔案
一、首先安裝 pyinstaller
命令:
    pip3 install pyinstaller
二、安裝完成後,開始使用。進入要編譯的py檔案所在目錄
    pyinstaller ./py檔案名稱  #效果是有一堆的檔案在dist檔案夾下
    如果要編譯成一個檔案:
    pyinstaller --console --onefile ./py檔案名稱  #在dist檔案夾下只產生一個exe檔案。
    
初次運行,可能會出現 failed to create process,這是pip3的bug,路徑的空格不能正常識別
解決:
    進入C:\Program Files\python\3.5\Scripts,可以看到有一個pyinstaller-script.py和pyinstaller.exe
    文字編輯器開啟pyinstaller-script.py.第一行的代碼申明是這樣的
    #!c:\program files\python\3.5\python3.exe
    加一個引號變成:#!"c:\program files\python\3.5\python3.exe"
重新運行編譯命令,即可。

從運行速度上看,.exe和.pyc一樣。但都大於py檔案。exe檔案的相容性更好把,.pyc需要電腦安裝有編譯時間相同的python版本。(.pyc的產生速度很快)

問題解答:
1.編譯成pyc,還會出現.沒有_path_屬性的錯誤
"Error while finding spec for 'fibo.py' (: 'module' object has no attribute 'path')"
這是因為編譯時間,不應該使用
    python3 -m kill2next.py  #kill2next是檔案名稱
.py表示該模組(py)在包kill2next當中
正確方法:
    python3 -m kill2next  #不要帶尾碼

2.exe編譯失敗:
UnicodeDecodeError:"gbk" codec can't decode byte 0xaa in position 160:illegal multibyte sequence
解決:
檔案名稱改成英文


   

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.