2016-07-31 44 views
2

我試圖打包一個python工具,我寫入一個exe文件在Windows 10上使用。據我所知,exe文件是正確構建的。它加載和一切工作,如果我從命令行運行它。PyInstaller的exe只適用於從cmd運行時

但是,如果我嘗試從資源管理器(雙擊圖標)運行該工具,我會收到「無法執行腳本」錯誤。我已經嘗試使用--debug開關構建它,希望能夠在cmd關閉之前快速捕獲任何輸出,但它太快了。

我用它來構建工具的線是:

pyinstaller.exe --onefile --debug --console --icon=C:\Users\Ross\Desktop\gtt\assets\icon.ico --hidden-import xlrd gtt.py 

它完美地工作之前,我就開始使用ReportLab的模塊:

from reportlab.lib import colors 
from reportlab.lib.enums import TA_CENTER 
from reportlab.lib.pagesizes import letter, portrait 
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle 
from reportlab.lib.units import inch 
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer 

命令行給出有關錯誤絕對沒有輸出,當我運行它使用調試開關: Screenshot showing tool running in cmd

我試過以下,沒有任何工作。

  • --noupx
  • --onedir
  • --onefile

概括起來,爲什麼會在命令行中運行時,而不是從一個PyInstaller exe文件工作Windows GUI?

編輯:這個問題似乎與PyQt4。我回到了從tkinter切換到Qt的提交,並且問題仍然存在。以前的版本,與tkinter,從GUI加載罰款。

回答

0

我想通了!我不得不把gui.ui文件轉換成一個包。

  1. 我創建包「鬼」,一個包含空的__init__.py
  2. 我跑pyuic4 gui.ui -o gui.py到gui.ui代碼轉換成Python的
  3. 我既感動和gui.ui文件gui.py成在GUI目錄
  4. 我主要的程序代碼,我輸入模塊:from gui.gui import *

希望幫助別人!