如何制作便携式python桌面应用程序?

问题描述:

要求是使应用程序可移植,意味着没有安装程序。我看着py2exe,我怕我需要运行安装,如果我想在Windows下运行它。如何制作便携式python桌面应用程序?

所以我的问题是,我可以做一个可移植的Python桌面应用程序没有任何安装(所有的依赖和库被打包),从USB/CD拖动将运行它?

(这很重要,因为它是一个头痛的用户安装C++运行时库...)

感谢。

+0

您说让用户安装C++运行时库令人头疼......为什么不包含它在你的程序的安装程序中?我使用Inno Setup安装了py2exe打包Python软件。我只需要安装程序使用'/ qb'标志运行Visual C++运行时可再发行组件,以便用户不必执行任何操作。 – 2012-03-02 20:21:33

+0

@ Series8217谢谢。我想我可以做到这一点,但重点是没有安装程序;如果它可以携带,很好! – CppLearner 2012-03-02 20:23:44

您可以使用此方法py2exehttp://www.py2exe.org/index.cgi/SingleFileExecutable

基本上,你用NSIS到所有需要的文件和文件夹打包成一个单一的可执行文件。运行它时,所需文件将展开到一个临时目录,可执行文件将运行,当它退出时,会自动删除临时文件。

还有一个与py2exe自带的例子,它使用Inno Setup而不是NSIS来实现相同的结果。它已安装到​​。

+0

谢谢。我读过它,如果我错了,请更正:因此,在编译安装程序后,我可以将整个文件夹复制到另一台计算机。运行可执行文件,它会在tmp文件夹中生成适当的文件,如dll,一旦用户关闭应用程序,该文件夹就会被删除。我的应用程序需要持久性,因为我们有一个XML数据库,所以我们不想破坏记录。我如何知道在tmp中创建了什么?谢谢。 – CppLearner 2012-03-02 20:19:26

+0

@CppLearner正确。编译“安装程序”后,需要移至其他计算机的唯一可执行文件就是“安装程序”。当您运行该可执行文件时,它将解压缩其内容(应用程序exe文件和所需的DLL文件等),运行该应用程序,并在应用程序退出时删除该临时文件夹。您可以通过编辑示例NSIS脚本来控制行为。 – 2012-03-02 20:27:34

+1

@CppLearner如果你想持久化数据,将它存储在它应该去的地方......也许'%homepath%\ AppData \ MyXMLDB'或类似的东西。然后应用程序总能找到它,而不管你从哪里执行它。 – 2012-03-02 20:28:16

您也可以叉Portable Python并修改以包含您所需的应用程序和库。它可以在没有安装的情况下从任何驱动器/网络位置运行,并且您可以选择是否希望基于2.xx或3.xx的Python核心