Python pyinstaller导致了奇怪的问题

Python pyinstaller导致了奇怪的问题,python,pyinstaller,Python,Pyinstaller,我正在尝试使用pyinstaller为我编写的脚本创建一个独立的exe,我在过去使用-F标志完成了这项工作。这一次,我遇到了一个问题 exe构建得很好,可以运行,但是当我使用-h(帮助)之外的任何cmdline参数运行它时,程序只是重复打印“argument-f/--file is required”(它是必需的)。但是,即使我输入了-f“filename”,也会发生这种情况,通常程序应该在出现此错误时退出,但它只是挂起并重复打印错误 有人见过类似的问题吗?py文件完全按照预期运行,但一旦我将其

我正在尝试使用pyinstaller为我编写的脚本创建一个独立的exe,我在过去使用-F标志完成了这项工作。这一次,我遇到了一个问题

exe构建得很好,可以运行,但是当我使用-h(帮助)之外的任何cmdline参数运行它时,程序只是重复打印“argument-f/--file is required”(它是必需的)。但是,即使我输入了-f“filename”,也会发生这种情况,通常程序应该在出现此错误时退出,但它只是挂起并重复打印错误

有人见过类似的问题吗?py文件完全按照预期运行,但一旦我将其构建到exe中,它就开始表现出这种奇怪的行为

编辑:

好吧,我对这个问题做了更多的研究,现在我觉得这个问题更奇怪。。。我将所有argparse内容分解为自己的函数,如下所示:

def parseArgs():
''' Parse command line arguments '''
parser = argparse.ArgumentParser(description="desc")
parser.add_argument('-f', '--file', required=True, dest='input_file', help='Text file containing the list of hosts')
parser.add_argument('-p', '--processors', required=False, dest='processors', help='Specify the number of processors to use. If omitted \
                        this will default to use as many processors as are available')  
parser.add_argument('-v', '--verbose', required=False, action='store_true', help='Print additional output to the console', default=False)
parser.add_argument('-u', '--unc', required=False, dest='unc_path', help='UNC Path to copy results to. If omitted, results will need to be copied \
                        off later. Format UNC path as normal, with a trailing backslash, i.e. \\\\server\path\share\\', default='')

args = parser.parse_args()

# Check UNC path and fix issues with trailing slashes, etc.
if args.unc_path != '':
    args.unc_path = args.unc_path.replace('\\', '\\\\')

return args
这显然是在main函数中调用的。我发现程序的这一部分实际上工作得很好。在调用parseArgs()之后,我在主函数的某个点上有一些标准输出,我在屏幕上看到这一切正常

非常奇怪的是,在调用我的另一个(与parseArgs()完全无关)函数之后,我得到了输出,就好像我给出的参数有错误一样(没有错误,请记住,这完全适用于.py文件,而不是在将其打包为exe后)

如果有什么不同,我调用的函数将用于使用pool.map()将文件复制到多个远程主机(使用XCOPY)以在子进程之间分割工作

有人知道为什么在我的程序的这一部分完成执行之后,我会看到与argparse相关的输出吗

另一个编辑:这看起来确实与多重处理有关,因为有时出现的argparse错误会重叠(正如我所说的,相同的错误告诉我需要-f重复打印到屏幕上)


提前谢谢

你在用什么操作系统?另外,您是否可以在调用
main()和
main()之间添加代码?我想你在什么地方有这个。