我正在使用 quick ide,但在文件路径方面遇到了麻烦。应用程序所需的附加文件应该放在哪里?当我在应用程序安装后将附加文件放入 /data/ 文件夹中时,新路径是什么?它是存储在 /opt/extras.ubuntu.com/projectName/share 中还是 /usr/share/ 中?根据应用程序对决规则,它必须在 opt 中。
应用程序需要 root 权限才能写入其文件?如何访问 Python 代码中的文件路径?
答案1
当你想写文件路径时,你必须以相对方式写。所以在 Glade 中你必须写
../media/icon.png
使用两个点 (.) 即可返回/data
文件夹。然后,您说要进入 /media 并打开 icon.png。您必须这样做,因为 Glade .ui 文件存储在其中/projectname/data/ui/
- 从这里您必须返回 1,然后进入/media
文件夹。
例如,在编写 .desktop.in 文件(桌面/应用程序条目)以包含图标时,您必须这样编写:
./data/media/icon.png
注意只写一个要点。
哦,我忘了:该应用程序不需要 root 权限即可写入文件,并可快速自动完成所有重要的打包(与 /opt/ 有关的事情)。您不必关心 /opt/。
我希望我能帮助你解答你的疑问。
PS:请注意,Ubuntu 应用程序开发者对决已经结束!
答案2
我一直在想过去最好的办法是什么,并看了http://developer.ubuntu.com对于媒体播放器(链接现在似乎已经失效了),他们使用快速使用时默认存在的辅助模块。
from <appname>_lib import helpers
def get_path(self):
file_path = helpers.get_media_file("filename.ext")
file_path = file_path.replace("file:///", "")
return file_path
如果您查看实际的帮助程序代码,这只会在数据文件夹内查看媒体文件夹。
这将返回以“file:///”为前缀的文件路径,但该路径并不总是被接受,因此被删除。
答案3
我认为 [appname]_lib/[appname]config.py 中的 get_data_path() 函数就是为此而设置的。因此,在 Python 中,在文件开头导入该函数:
from [appname]_lib.[appname]config.py import get_data_path
然后,当您想要使用数据目录中的文件时,您可以像这样获取其路径:
data_path = get_data_path()
filepath = os.path.join(data_path, 'mydatafile.css')