我想将用python编写的应用程序分发为.exe文件。我已经能够使用py2exe来做到这一点,但现在我已将veusz库合并到我的代码中。理想情况下,我的程序应该打开一个veusz图(就像它在我的计算机上,它已经安装了python,numpy等)。但是,我想分发一个可执行文件,而无需安装python。
当我尝试使用py2exe运行我的setup.py时,一切正常并且构建了exe。但是,一旦应用程序运行并到达显示图形的程度,它就会发送:
运行时错误:无法在系统路径上找到veusz可执行文件。
我可以解决这个问题,而无需在客户的计算机上安装一堆东西吗?这可能吗?如果我必须安装一些东西,我需要安装的最小软件数量是多少?
答案 0 :(得分:1)
Veusz在一个单独的python进程中运行其用户界面,因此它不会阻止python。如果你看看veusz / embed.py,它会尝试启动python或veusz可执行文件。您需要修改embed.py以启动您的.exe(sys.executable),如果冻结而不是veusz并传递一些特殊参数,您的程序将解释为开始运行veusz.embed_remote.runremote。
python多处理模块必须做类似的事情 - 你需要调用一个多进程函数来检查程序是否是通过多处理启动的 - 来解决Windows没有工作分叉的事实。