我用 Python 开发了一个用于 App Developer Showdown 的程序,当我正常打包并安装到 /usr 中时,它按预期运行。但是,当打包安装在 /opt 中时,它无法运行,而且我没有收到(或找不到)任何类型的错误消息,至于问题可能是什么。我想知道这里是否有人知道答案。
该应用程序确实需要 root 访问权限(使用 gksudo)才能运行。
应用:
答案1
如果你删除其中gksudo
的内容,bin/aplomb
你会看到错误消息:
Traceback (most recent call last):
File "/opt/extras.ubuntu.com/aplomb/bin/aplomb", line 48, in <module>
import aplomb
File "/opt/extras.ubuntu.com/aplomb/aplomb/__init__.py", line 26, in <module>
from aplomb import AplombWindow
File "/opt/extras.ubuntu.com/aplomb/aplomb/AplombWindow.py", line 23, in <module>
locale.bindtextdomain('aplomb', '/opt/extras.ubuntu.com/aplomb/share/locale')
NameError: name 'locale' is not defined
答案2
将这些行添加到必要的文件中应该可以解决您的语言环境问题。
import locale
TEXTDOMAIN = 'yourapp'
LOCALEDIR = '/opt/extras.ubuntu.com/yourapp/share/locale'
#LOCALEDIR = '/usr/yourapp/share/locale'
from locale import gettext as _
locale.bindtextdomain(TEXTDOMAIN, LOCALEDIR)
locale.textdomain(TEXTDOMAIN)