作者moodoa3583 (金牌台灣啤酒)
看板Python
標題[問題] pyinstaller跨平台使用
時間Sun Sep 13 19:54:54 2020
前陣子想說幫朋友解決繁瑣的工作,就做了一個py小程式,
而他的電腦沒有裝 python ,所以我初步是想用 pyinstaller 打包成 exe 再給他。
但由於我的電腦是 windows 他的是 mac,所以產出的 exe 檔沒辦法使用,
錯誤如下:
"You can't open the application "xxx.exe" because Microsoft Windows
application are not supported on maxOS"
參考了網路上用 docker 打包的方式產出的 exe 檔也還是同錯誤沒辦法使用。
目前有點卡住,還想請教各位這種狀況通常會怎麼處理比較好,感謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.44.76.202 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1599998096.A.6DA.html
→ OrzOGC: py檔給他叫他自己裝python 09/13 20:18
雖然這樣最方便,但其實我自己也蠻好奇跨平台的做法的
※ 編輯: moodoa3583 (114.137.243.73 臺灣), 09/13/2020 20:25:26
→ day831231: 不能執行很正常,作業系統不一樣,系統函式不能呼叫 09/13 22:26
→ day831231: 解法就是直接在目標平台編譯,找台電腦、裝虛擬機都行 09/13 22:27
→ day831231: 想在runtime跨平台的話,就需要虛擬機,例如Java的JVM 09/13 22:30
→ day831231: ,所以編譯成Java code也行 09/13 22:30
推 TuCH: 不同作業系統包的exe不能互通 還是給py檔吧 09/14 00:26
推 yiche: 基本上你有解了吧 就我的經驗docker就是用在這情況的,在容 09/14 03:11
→ yiche: 器部署編譯環境 09/14 03:11
推 yiche: nuitka可以把py 編譯成c code在轉成exe,不過不確定mac os 09/14 03:14
→ yiche: 裝cpp compiler 是不是能執行這個c code。 09/14 03:14
的確看起來是用docker解,但不知為何出來的exe檔還是沒辦法跨平台使用
※ 編輯: moodoa3583 (114.137.243.73 臺灣), 09/14/2020 10:55:31
推 yiche: exe 只能在windows執行,其它作業系統不認識這個檔案格式吧 09/14 12:29
推 TuCH: pyinstall 的用法就是把當下版本的python壓縮在exe裡面 09/14 12:44
→ TuCH: 不同作業系統用的python 不一樣 當然不能run 09/14 12:44
→ w0005151: 用docker但還是編譯出.exe不就沒意義了嗎... 09/14 21:16
→ w0005151: 就叫你朋友裝Python吧,然後給他一個requirements.txt 09/14 21:17
噢拍謝我以為在Mac上的執行檔也是用exe檔來稱呼,感謝長知識。其實是有出一個副檔名是unix和一個沒有副檔名的,但兩個都不能開。
推 zebracoco: 我的辦法是自己買一台mac電腦,然後安裝python後,再將 09/14 23:16
→ zebracoco: py檔做成exe再給對方 09/14 23:16
後來的確是借了一台 mac 輕鬆解決,真的是工欲善其事必先利其器。
※ 編輯: moodoa3583 (223.137.155.93 臺灣), 09/15/2020 09:43:45
※ 編輯: moodoa3583 (223.137.155.93 臺灣), 09/15/2020 09:59:01
推 roccqqck: 同一台開個非admin user 裝python在user 編譯完就刪掉us 09/17 20:41
→ roccqqck: er 09/17 20:41
推 MAGICXX: 我一直以為MAC是DMG? 09/21 19:05