【问题标题】:How can I make portable python desktop application?如何制作可移植的 Python 桌面应用程序?
【发布时间】:2012-03-21 07:49:54
【问题描述】:

要求是使应用程序可移植,这意味着没有安装程序。我查看了py2exe,如果我想在Windows下运行它,恐怕我需要运行它。

所以我的问题是,我可以制作一个无需任何安装(所有依赖项和库都打包)的便携式 python 桌面应用程序,从 USB/CD 中拖动就可以运行它吗?

(这很关键,因为安装 C++ Run Time 库让用户很头疼……)

谢谢。

【问题讨论】:

  • 你说安装 C++ 运行时库让用户头疼……为什么不将它包含在程序的安装程序中呢?我已经使用 Inno Setup 将 Python 软件与 py2exe 打包在一起进行安装。我只是让安装程序运行带有 /qb 标志的 Visual C++ 运行时可再发行组件,因此用户无需执行任何操作。
  • @Series8217 谢谢。我想我可以做到,但重点是没有安装程序;如果它可以便携,那就太好了!

标签: python desktop-application


【解决方案1】:

您可以将此方法与py2exe 一起使用:http://www.py2exe.org/index.cgi/SingleFileExecutable

基本上,您使用NSIS 将所有必需的文件和文件夹打包到一个可执行文件中。运行时,将所需文件展开到临时目录,运行可执行文件,退出时自动删除临时文件。

还有一个 py2exe 附带的示例,它使用 Inno Setup 而不是 NSIS 来实现相同的结果。它已安装到site-packages\py2exe\samples\extending

【讨论】:

  • 谢谢。已阅读,如有错误请指正:所以在我编译安装程序后,我可以将整个文件夹复制到另一台计算机上。运行可执行文件,它将在 tmp 文件夹中生成适当的文件,如 dll,一旦用户关闭应用程序,这些文件将被删除。我的应用程序需要持久性,因为我们有一个 XML 数据库,所以我们不想破坏记录。我怎么知道在 tmp 中创建了什么?谢谢。
  • @CppLearner 正确。编译“安装程序”后,唯一需要移动到另一台计算机的可执行文件就是“安装程序”。当您运行该可执行文件时,它会解压缩其内容(应用程序 exe 和所需的 DLL 文件等),运行应用程序,并在应用程序退出时删除临时文件夹。您可以通过编辑示例 NSIS 脚本来控制行为。
  • @CppLearner 如果您想要持久性数据,请将其存储在它应该去的地方......也许是%homepath%\AppData\MyXMLDB 或类似的东西。然后应用程序总能找到它,无论您从哪里执行它。
【解决方案2】:

您还可以 fork Portable Python 并进行修改以包含您需要的应​​用程序和库。它无需安装即可从任何驱动器/网络位置运行,您可以选择基于 2.x.x 或 3.x.x 的 Python 核心

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-21
    • 1970-01-01
    • 2014-03-14
    • 2016-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多