iT邦幫忙

0

python打包成執行檔無法執行

  • 分享至 

  • xImage

想請教各位大大以下問題:

  • 我引用pyscreenshot寫了一個截圖並存在相同路徑的程式
  • 用.py檔在本機執行都可以,但是一打包成.exe檔,就沒成功過
    打包語法如下:(顯示成功)
pyinstaller -F screen.py

一打開執行檔 就一直停在此畫面不動 :

全部程式碼如下:

import pyscreenshot as ImageGrab
import time

i = 1
while 1:

    # 擷取全螢幕畫面
    image = ImageGrab.grab()
    image.save("fullscreen"+str(i)+".png")
    i = i + 1
    time.sleep(5)

第一次碰到這種打包成執行檔無法執行的狀況...
頭好痛...

看更多先前的討論...收起先前的討論...
有沒有把Pillow 一起打包進去?pyscreenshot是否為最新版本?官網有提到最後版本才有支援跨平台....(難講不同電腦同windows也會鬧平台相容性的問題)
froce iT邦大師 1 級 ‧ 2021-03-18 16:03:49 檢舉
我覺得應該有執行,但是pyinstaller存檔目錄不是在你exe檔所在目錄,而是在temp資料夾。

https://pyinstaller.readthedocs.io/en/stable/runtime-information.html
player iT邦大師 1 級 ‧ 2021-03-18 17:54:03 檢舉
我有個疑惑
為什麼你們寫個螢幕抓圖功能
要寫成無限回圈? (我沒有看到break的條件)
lulu_meat iT邦研究生 5 級 ‧ 2021-03-19 10:08:19 檢舉
其實我本來是寫每十秒截一次圖 然後把圖片發到我的line裡面(類似捉姦的概念)
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

4
ccutmis
iT邦高手 2 級 ‧ 2021-03-18 16:09:43
最佳解答

試試改用 pyautogui 的截圖功能
(若還沒安裝 pyautogui 模組 記得先 pip install pyautogui)

from datetime import datetime
import pyautogui, time
while 1:
    # datetime object containing current date and time
    now = datetime.now()
    pyautogui.screenshot('screenshot-'+now.strftime("%Y%m%d-%H%M%S")+'.png')
    print('screenshot-'+now.strftime("%Y%m%d-%H%M%S")+'.png SAVED!.')
    #把結果印出來就知道有沒有執行
    time.sleep(5)

另外 pyinstaller 的指令可以改成這樣試試:

pyinstaller -F .\screen.py
lulu_meat iT邦研究生 5 級 ‧ 2021-03-18 16:48:57 檢舉

謝謝您!!!
我全部都照您的方法做,結果大成功!
太厲害了!!
/images/emoticon/emoticon32.gif

ccutmis iT邦高手 2 級 ‧ 2021-03-18 16:52:58 檢舉

不客氣~很高興幫上忙!

我要發表回答

立即登入回答