我有一个输入行,要求用户按Enter键继续。这样他们就有时间在程序结束之前读取一些东西(在我构建exe时)。
我最近从自定义Python 3.6环境转移到使用Anaconda for Python 3.5.5,现在如果用户点击进入而没有实际输入字符,代码将在输入语句后挂起。
我的脚本导入mayavi
,当我删除该导入行时,问题就消失了。我真的很喜欢使用mayavi,只花了3天时间让所有内容都正确冻结,所以我更愿意继续使用它。
示例:
junk = input('Please press enter!')
如果用户点击进入,程序就会挂起。但是,如果您输入一个然后按Enter键,它将按预期工作。如何在不输入任何字符的情况下继续输入?
修改
有关更多详细信息,我使用Anaconda Python 3.5.5环境在Windows上的Visual Studio Code中运行此代码。在我运行它的代码中的哪个位置并不重要。我认为无论如何都会发生这种情况,但我开始剥离进口并开始重新开始工作。我正在导入一个自定义类,tkinter,xlwings,numpy,traceback,mayavi.mlab,sys,time,win32api.GetSystemMetrics和win32com.client.gencache。我将继续查看是否特别重要。
此外,这都是在包装函数中运行的,所以我不知道这是否重要。此外,我听到了捕获任何异常的问题,但这符合我的要求。
def main_wrapper():
# wrapper for main program to catch any exceptions and display them to the user
try:
main()
except Exception as ex:
print('Unexpected exception occurred...')
traceback.print_exc()
if __name__ == '__main__':
main_wrapper()