Re: [問題] windows 程式的 console 視窗問題
※ 引述《eaden (evenrain)》之銘言:
: 我用 pySide 寫了一個 GUI 程式,有個小功能是點擊按鈕後會去 ping 192.168.1.x
: 在 Eclipse 裡執行時看起來很正常。
: 然後用 GUI2Exe 這個 GUI 工具,透過 py2exe 把程式打包成 .exe
: ExeKind 我選了 windows,實際執行時不會另外跳出 console 視窗,
: 不過當我 click button 後,卻跳出一堆 console 視窗在執行 ping 指令
: 雖然說執行完畢會自動關閉,但是跳出一堆視窗還滿困擾的,
: 不知道是不是打包成 exe 的時候要注意些什麼?
: 程式碼在這:
: https://dl.dropboxusercontent.com/u/1245969/pingtest.7z
: dist 目錄裡就是打包成 exe 後的檔案,執行 main.exe 可以看到結果
: 麻煩大家幫忙看一下問題出在哪裡,謝謝 m(_ _)m
遇到另外一個問題
我在原先的 netutils.GetIpMacListThread 之後加了
process = subprocess.Popen(["arp", "-a"], stdout=subprocess.PIPE)
self.result = process.stdout.read()
想取得 arp 的結果,在 eclipse 中跑是正常的
但是用 pyinstaller-gui 打包之後,
如果勾選了 "No console",則無法取得 arp 的結果,
但是如果不勾選 "No console",則可以正常顯示。
看起來是因為 stdout 設為 PIPE,但是因為沒有 console,
所以去讀取資料的時候抓不到東西,請問這個問題除了不勾選 "No console" 外,
有其他的解法嗎?
程式碼:
https://dl.dropboxusercontent.com/u/1245969/pingtest.zip
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.190.212
→
04/22 20:01, , 1F
04/22 20:01, 1F
推
04/23 11:15, , 2F
04/23 11:15, 2F
我改成
process = subprocess.Popen(["arp", "-a"], stdout=subprocess.PIPE, shell=True)
self.result = process.communicate()[0]
結果還是一樣,只要勾選了 No console 就抓不到東西 orz
※ 編輯: eaden 來自: 122.116.190.212 (04/24 13:41)
最後放棄 subprocess 改用 os.system('arp -a > tmp')
然後再去讀檔解決了 XD
※ 編輯: eaden 來自: 122.116.190.212 (04/24 14:17)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章