带有Sys.Argv []的Pyinstaller-如何修复“无法执行脚本”?

时间:2019-07-31 05:15:46

标签: python compilation pyinstaller

我正在尝试使用PyInstaller在Windows 10 64位上编译.EXE。

在Windows CMD提示符下使用以下CMD时,脚本执行成功。

pyinstaller --onefile Mainscript.py

在带有参数的CMD提示符下执行可以正常工作(请参见下面的Python代码)。但是,执行时将显示控制台。因此,我使用以下CMD重新编译为.exe ...

pyinstaller --noconsole --onefile Mainscript.py

现在我通过CMD执行脚本时,出现错误,提示“执行脚本失败”。

我不确定如何解决此问题。

下面是Python代码。该脚本将PDF的首页转换为JPG,并接受3个参数。 1.)源PDF文件路径2.)目标JPG路径3.)图片大小

我这样执行:

start MainScript.exe "TestPDF.pdf" "TestJPG.jpg" 100

testPDF.pdf位于cd中。

Python代码:

#REQUIRES PDF2IMAGE INSTALLED WITH PIP
#REQUIRES POPPLER BINARIES INSTALLED ON WINDOWS VIA WEBSITE
from pdf2image import convert_from_path
import os.path
import ctypes
import sys

try:
    argcount = len(sys.argv)  #COUNT OF CMD LINE ARGUMENTS
    if argcount != 4:
        if argcount == 1:
            errStr = "No arguments passed"
        else:
            errStr = "Error: incomplete args passed.  " + "Args = " + str(argcount)

            for x in range(1, argcount):  #argv[0] IS ALWAYS THE SCRIPT NAME
                errStr = errStr + str(x) + ": " + sys.argv[x] + "\n"

        ctypes.windll.user32.MessageBoxW(0, errStr, "Python Convert2Thumbnail", 1)
    else:
        inpath = sys.argv[1]
        outpath = sys.argv[2]
        fsize = sys.argv[3]

        pages = convert_from_path(inpath, fsize)
        firstpage = pages[0]
        firstpage.save(outpath, 'JPEG')

except Exception as e:
    errmsg = getattr(e, 'message', repr(e))
    for x in range(1, argcount): 
        errStr = errStr + str(x) + ": " + sys.argv[x] + "\n"
    errStr = errStr + "\n" + "\n" + errmsg
    ctypes.windll.user32.MessageBoxW(0, errStr, "Python Convert2Thumbnail", 1)
quit()

感谢您的帮助。

此致

0 个答案:

没有答案