Running a packaged Python program in Ubuntu
我已经编写了一个python程序和cx_freeze它,这样它就可以移动到其他linux机器上执行,除了以下内容之外,一切都很好
在冻结了所有的python代码之后,我将dpkg build它和标记为/usr/bin/my program作为我的安装目录,一切正常,我可以建立和安装程序到指定的目录,但我只能更改目录和./myProgram来启动我的程序,如果我不这样做,我将被告知丢失设置的错误。xmL是一个外部文件,位于主程序旁边,也位于/usr/bin/my program中。
我想创建一个桌面快捷方式,我假设在不首先将目录更改为程序目录的情况下,执行程序需要完整的路径,我能做些什么来实现这一点吗?
消息显示,当我使用完整路径运行程序时,缺少setting.xml文件,但当我第一次更改到该目录和./myProgram时,它工作正常。
非常感谢你的帮助。
- 此外,还可以检测可执行文件的正确位置,该位置与运行它的位置和方式无关。然后可以将文件位置附加到可执行目录路径。因此,您不将文件加载为settings.xml,而将文件加载为os.path.join(application_root_dir,"settings.xml")。
- 请参阅stackoverflow.com/questions/10293808/…。
一个解决方法是创建一个简单的脚本到目录cd,用./myProgram运行可执行文件,然后用桌面启动程序调用具有完整路径的脚本。
另一种方式:桌面启动程序中有一个Path键。您可以将其设置为:
1
| Path=working_directory_path |
在.desktop文件中
- 谢谢你的建议,我确实已经用过这个方法了,但我想我们应该有更好的解决方案吗?
- @用户2499325可以使用Path在.desktop文件中设置工作目录。
- 谢谢你的路径属性,我已经完成了!!我只是在想,也许在cx冻结过程中我可以做些什么,也许我做错了什么……