iT邦幫忙

0

python 打包完exe 會閃退

問題如題

我是用pyinstaller打包的
有上網查到也要下載pywin32
我也都有下載了
下面是我在cmd顯示的結果
https://ithelp.ithome.com.tw/upload/images/20191208/20122463tdghniObWu.pnghttps://ithelp.ithome.com.tw/upload/images/20191208/20122463ohywEBYpgE.png

我程式碼有這些import

import datetime
import time
import calendar
import json
import pymysql
import requests

我是有把requests、pymysql 的包文件丟到我存的python中
其他沒有看到是包文件,所有就沒丟上去了
我有打input
enter也是跳掉

想請問還有甚麼方法可以解決閃退的問題?
或是有其他方法可以打包成exe檔

我主要要利用工作排程器讓python定時執行結果
還是不需要讓exe成功開啟也可以成功運行?

看更多先前的討論...收起先前的討論...
ccutmis iT邦高手 8 級 ‧ 2019-12-08 11:54:49 檢舉
請先Google '提問的智慧'

你的標題 'python 打包exe 會閃退' 是指打包exe過程閃退 還是打包exe完成 執行exe會閃退? 這樣的標題加內文描述我看不懂。
你的pyinstaller打包語法是怎樣的? 我是用 pynstaller -F filename.py [enter]
這個關係到你打包出來的exe是只有一個EXE檔案還是需要帶一大包東西。

建議把問題重新描述清楚...
ccutmis iT邦高手 8 級 ‧ 2019-12-08 12:11:19 檢舉
對了 如果你指的是'打包exe完成 工作排程器執行exe會閃退'的話,可以試試在你的.py 裡面最末端加上以下兩行 :
from os import system
system('pause')

(但是通常如果你是固定一段時間執行這個py的話,是不需要讓它執行完還繼續留在畫面上的,比如說你在server放上這個exe每小時執行,如果放一天沒去理它,畫面上就會出現幾十個視窗,這個在實務上要考慮進去)
lingwu iT邦新手 5 級 ‧ 2019-12-08 15:47:46 檢舉
打包完成會閃退
我是打 pynstaller -F file.py
我查過解決問題的方法
試過都沒有解決問題

python裡面是寫爬蟲的內容
所以沒有需要用到其他py檔的內容
ccutmis iT邦高手 8 級 ‧ 2019-12-08 17:23:58 檢舉
你的開發環境是用Anaconda 還是Python3.7
我是只安裝Python3.7 沒問題
如果你是用Anaconda 也許問題是出在開發環境
建議移掉Anaconda重開OS再重新安裝純Python3.7 與相關套裝再試試
froce iT邦大師 3 級 ‧ 2019-12-08 18:52:02 檢舉
pyinstaller對Anaconda或venv這種虛擬環境不太友善。
會造成寫小小一隻程式,包出來200多mb的狀況,也常出錯。

建議windows用戶就直接灌python直接用就好,因為這不會弄亂你的環境。
lingwu iT邦新手 5 級 ‧ 2019-12-08 21:30:24 檢舉
我是用jupyter 寫的
那我再改用python 試試看
lingwu iT邦新手 5 級 ‧ 2019-12-09 01:13:49 檢舉
改用python打就可以了!
謝謝兩位的解釋
ccutmis iT邦高手 8 級 ‧ 2019-12-09 07:52:08 檢舉
不客氣:)

1 個回答

1
froce
iT邦大師 3 級 ‧ 2019-12-08 09:03:25

ㄜ,你貼的這些完全沒幫助

我主要要利用工作排程器讓python定時執行結果
還是不需要讓exe成功開啟也可以成功運行?

當然可以直接用命令列執行。
跟你打包前跑結果一樣填入工作排程器就行了。
打包通常是要拿去別台電腦又不想裝套件和python才做的。

windows的工作排程器的話,要注意你是用什麼身份執行的。
聽不懂的話就試試看不要勾「以最高權限執行」。

然後建議你先不要用工作排程器執行,直接執行打包的exe看看有沒有問題再說。

lingwu iT邦新手 5 級 ‧ 2019-12-08 15:54:04 檢舉

目前直接執行打包的exe是會閃退的

froce iT邦大師 3 級 ‧ 2019-12-08 21:31:52 檢舉

那就是打包就出問題了。
用cmd執行exe,這樣應該不會閃退,然後看裡面的錯誤log。

我要發表回答

立即登入回答