0
我正面臨編譯Python腳本與cx_Freeze 5.0困難。 腳本編譯正確,生成EXE。在滿足所有要求之前,將一系列錯誤消息輸出到控制檯。 添加完所有要求後,運行EXE的不會輸出到控制檯。程序默默停止,不打印任何東西。 如果直接從Python的運行按預期工作:cx_Freeze生成EXE打印沒有控制檯輸出
>python testScript.py -p 12 aaa/bbb.ccc
Test script with the following params:
Namespace(input_file='aaa/bbb.ccc', param=12)
我認爲這個問題是關係到argparse包我用。
下面是我寫的一個小測試腳本和編譯腳本,它重現了行爲。
from sys import exit, argv
import os
import argparse
if __name__ == "__main__":
parser = argparse.ArgumentParser(prog=os.path.basename(argv[0]),
description='Command line parser test.')
parser.add_argument('input_file',
metavar='path/to/file',
help='path to source file)')
parser.add_argument('-p','--param', required=False,
metavar='par',
type=int, default=1,
help='test parameter')
try:
args = parser.parse_args()
except argparse.ArgumentError:
exit("Use -h option for help on using.")
if args.input_file is None:
parser.print_usage()
exit(0)
#%% display parameters
print "Test script with the following params:"
print args
cx_Freeze編譯腳本:
from cx_Freeze import version, setup, Executable
import sys
print "Compilation using cx_Freeze version", version
productName = "testScript"
build_exe_options = {"packages": ["sys","os","argparse"]}
exe_options = Executable(
script = productName+".py",
targetName = productName+".exe",
base = None
)
setup(
name=productName,
version="0.0",
author="mstankie",
description="test script",
options = {"build_exe": build_exe_options},
executables=[exe_options]
)
爲什麼程序沒有打印到控制檯?
這是cx_Freeze中的一個錯誤,剛剛通過cx_Freeze 5.0.1發佈解決。 –