【问题标题】:Running a packaged Python program in Ubuntu在 Ubuntu 中运行打包的 Python 程序
【发布时间】:2015-05-12 08:25:10
【问题描述】:

我写了一个python程序并cx_freeze它,以便可以将它移到其他Linux机器上执行,一切都很好,除了以下内容

冻结我所有的python代码后,我然后dpkg build它并将/usr/bin/myProgram标记为我的安装目录,一切顺利,我可以构建并安装程序到指定目录,但我只能更改目录和./myProgram 来启动我的程序,如果我不这样做,我会被告知缺少我的 settings.xml 的错误,这是一个位于旁边的外部文件我的主程序也位于 /usr/bin/myProgram

我想创建一个桌面快捷方式,并且我假设需要完整路径来执行程序而无需先将目录更改为我的程序目录,我可以做些什么来实现这一点?

当我使用完整路径运行程序时,消息显示我缺少一个 setting.xml 文件,但是当我第一次切换到该目录和 ./myProgram 时,它工作正常

非常感谢您的帮助。

【问题讨论】:

  • 您还可以检测可执行文件的正确位置,该位置与运行位置和运行方式无关。然后,您可以将文件位置附加到可执行目录路径。因此,您不会将文件加载为settings.xml,而是os.path.join(application_root_dir, "settings.xml")

标签: python wxpython cx-freeze dpkg


【解决方案1】:

一种解决方法是创建一个简单的脚本到cd 到目录并使用./myProgram 运行可执行文件,然后使用桌面启动器以完整路径调用该脚本。

另一种方式: 桌面启动器中有一个Path 键。你可以这样设置:

Path=working_directory_path

.desktop 文件中

【讨论】:

  • 谢谢你的建议,确实我已经用过这个方法了,但是我想我们应该有更好的解决方案?
  • @user2499325 您可以使用Path在.desktop 文件中设置工作目录
  • 感谢 Path 属性,我现在搞定了!!我只是在想,也许我可以在 cx_freeze 过程中做一些事情,也许我在那里做错了什么......
猜你喜欢
  • 2018-04-16
  • 1970-01-01
  • 2011-02-28
  • 2023-02-03
  • 2020-10-21
  • 2011-03-27
  • 1970-01-01
  • 2017-03-06
  • 1970-01-01
相关资源
最近更新 更多