看板 Python 關於我們 聯絡資訊
不好意思想請問板上各位高手 最近接手一個python程式的維護 但特殊的地方是當初開發的人(已畢業)他當初是把python.exe跟其它需要的package打包 成新的’python_new.exe’ 因為這一個程式很常需要複製到不同的電腦(沒網路)上run,他直接寫一個batch裡面只有 一行‘python_new.exe main.py’去執行主要程式’main.py’ 看當初那個學長的紀錄是’用pyinstaller 把pandas,numpy 打包成python_new.exe’然後 就沒有其他訊息了… 想請問板上各位高手們這個大概是怎麼做到的啊@@? 小弟目前有試過把下面的code存成‘python_new.py’: import sys, subprocess subprocess.call([‘python’, sys.argv[1]) 然後下’pyinstaller -d=all -F python_new.py’ 但新的’python_new.exe’在沒網路跟python的電腦上跑起來就會一直看到LOADER的字眼但 就是不會啟動,跑了半小時還是一直瘋狂跳出LOADER跟_frozen什麼的……. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.249.78.69 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1694089785.A.8E6.html
lycantrope: 用embedded python 09/08 07:33
leolarrel: 私心認為應該有很多訊息只是你看不懂所以都ignore ... 09/08 13:10
leolarrel: 那個LOADER訊息 後面接的是什麼? 09/08 13:10
yiche: 比較喜歡nuitka 包起來比較小包也比較快 09/08 21:47
s860134: 通靈 debug. 這位學者其實沒做啥事,你的 main.py 被當作 09/10 04:25
s860134: 參數丟進 pyinstaller 打包的 python 作為第一個參數帶入 09/10 04:26
s860134: 他就跟你在一般電腦下 python main.py 沒啥不一樣 09/10 04:27
s860134: 比較大的問題是 pyinstaller 執行前會把 python 檔案解壓 09/10 04:28
s860134: 到 tmp 裡面去執行,很可能是路徑問題,你嘗試帶絕對路徑 09/10 04:28
s860134: 而不是 main.py 09/10 04:29
s860134: 類似: python_new.exe C:\tmp\main.py 09/10 04:32
fragmentwing: 樓上大大倒是解了我的疑惑 常常看到包失敗的話會跑 09/13 17:44
fragmentwing: 到那邊執行就感到很奇怪 09/13 17:44
fragmentwing: 不過這樣的話就代表打包要用絕對路徑然後在別的電腦 09/13 17:49
fragmentwing: 上要確保路徑一致?(比方說盡量包的時候是在桌面開 09/13 17:49
fragmentwing: 一個folder給它包然後新機上也是桌面開一個同名fold 09/13 17:49
fragmentwing: er執行) 09/13 17:49
s860134: 跟你寫的 python_new.py 有關 09/14 00:47
s860134: 你上面這些邏輯就包含著要把相對路徑轉換成絕對路徑來找 09/14 00:48
s860134: 到檔案 09/14 00:48