2024-09-28 22:24:28 发布
网友
有没有办法从python脚本创建一个standalone.exe。 使用py2exe生成的可执行文件只能与pythonXX.dll一起运行。 我想获得一个完全独立的.exe,它不需要安装python运行库。 这看起来像是一个链接问题,但是使用静态库而不是动态库,并且为了删除未使用的符号而应用条带也很有用。
知道吗?
谢谢。
亚历山德罗
如果您使用单个可执行文件的目的是为了简化下载/发送电子邮件等,那么我已经通过使用Inno Setup绑定py2exe输出来解决了这个问题。这实际上比拥有一个可执行文件要好,因为一个性能良好的Windows应用程序将提供一个卸载程序,显示在Add/Remove Programs applet中,而不是提供一个可以放入某个目录的可执行文件。Inno为您处理所有这些。
由于Windows的动态链接器是如何工作的,如果使用.pyd或.dll Python模块,则不能使用静态库;Windows中加载的dll不会自动与可执行文件共享其符号空间,因此需要包含Python符号的单独dll。
你可以在最新版本的py2exe中完成这项工作。。。只需在setup.py文件中添加类似下面的代码(关键部分是“bundle_files”:1)。
setup.py
要在安装中包含TkInter软件包,请使用“includes”键。
distutils.core.setup( windows=[ {'script': 'yourmodule.py', 'icon_resources': [(1, 'moduleicon.ico')] } ], zipfile=None, options={'py2exe':{ 'includes': ['tkinter'], 'bundle_files': 1 } } )
如果您使用单个可执行文件的目的是为了简化下载/发送电子邮件等,那么我已经通过使用Inno Setup绑定py2exe输出来解决了这个问题。这实际上比拥有一个可执行文件要好,因为一个性能良好的Windows应用程序将提供一个卸载程序,显示在Add/Remove Programs applet中,而不是提供一个可以放入某个目录的可执行文件。Inno为您处理所有这些。
由于Windows的动态链接器是如何工作的,如果使用.pyd或.dll Python模块,则不能使用静态库;Windows中加载的dll不会自动与可执行文件共享其符号空间,因此需要包含Python符号的单独dll。
你可以在最新版本的py2exe中完成这项工作。。。
只需在
setup.py
文件中添加类似下面的代码(关键部分是“bundle_files”:1)。要在安装中包含TkInter软件包,请使用“includes”键。
相关问题 更多 >
编程相关推荐