我认为,根据提交的错误报告中的详细信息,我可以在此处提供最优雅的解决方案
if __name__ == '__main__':
if sys.argv[0][-4:] == '.exe':
setattr(sys, 'frozen', True)
multiprocessing.freeze_support()
YOURMAINROUTINE()
在freeze_support()
需要-call在Windows上- 看到蟒蛇多处理文档。 如果仅在该行中在python中运行,则已经可以了。 但不知何故,用Cython显然是不知道的一些这些东西(的文档告诉它与测试py2exe
,PyInstaller
和cx_Freeze
)。它可以通过setattr
-call缓解,该调用仅在编译时使用,因此由文件扩展名决定。