【问题标题】:Getting Unable to set default locale when importing wx导入 wx 时无法设置默认语言环境
【发布时间】:2021-07-05 04:29:21
【问题描述】:

获取“无法设置默认语言环境错误:'不支持的语言环境设置'” 导入 wx 时。刚刚重新安装了win10以及eclipse和python,不明白为什么会出现这个错误。 使用eclipse 4.20、python 3.9.6、wxPython 4.1.1

它给我这个错误的示例代码

import wx

class calc(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self, None, title="Calculator", size=(400,400))
        self.panel = wx.Panel(self)
        global a
        a = wx.Button(self.panel, label="GO", pos=(100,100), size=(50,50))
        a.Bind(wx.EVT_ENTER_WINDOW, self.change, a)

    def change(self,event):
        a.SetBackgroundColour("red")
        self.Refresh()  # for windows
        event.Skip()

if __name__=="__main__":
    app = wx.App(False)
    frame = calc()
    frame.Show()
    app.MainLoop()

感谢您的帮助

【问题讨论】:

  • 这对我来说在 Arch 上工作正常 - 看起来像 Eclipse/Win 问题而不是 wxPython
  • 您没有指定 locale 的设置。有关于 Windows 上类似问题的主题。也许您可以在代码中设置语言环境。检查wx.Locale()

标签: python-3.x wxpython


【解决方案1】:

在 Windows 10 隐私设置中,位置已关闭,从而阻止应用访问位置。打开位置信息,问题就消失了。

【讨论】:

  • 公平地说,问题并没有消失,您必须允许访问许多人可能认为是隐私问题的内容。如果您的代码只在您的机器上运行,显然这不是问题。但是,如果您希望它在其他人的机器上运行,您将迫使他们在运行您的代码和让 MS 和其他人远离他们的生活之间做出决定。
  • 是的,这是真的。该代码仅在我的 PC 上运行。不喜欢隐私问题。
【解决方案2】:

不是隐私问题!区域设置 - 与国家/语言设置一样。

class App(wx.App):
  '''Derive your own App class.'''
  
  def InitLocale(self):
    '''Override with nothing (or impliment local if actually needed)'''
    pass
  #enddef

#endclass

MyApp = App()
MyApp.MainLoop()

Windows 上的 Python 3.8 为 wx.App() 打破了这一点

查看 wxPhonix 迁移指南: https://docs.wxpython.org/MigrationGuide.html#possible-locale-mismatch-on-windows

Kevin 和 Robin 正在研究它 :-) 这是非常深刻的问题铁饼 https://github.com/wxWidgets/Phoenix/issues/1616

罗宾发布解决方案:https://discuss.wxpython.org/t/apperarence-of-error-popup-each-time-i-run-the-script/35089

【讨论】:

  • 已解决:win7+py3.8+wx4.1.1
猜你喜欢
  • 2018-06-13
  • 2016-09-07
  • 1970-01-01
  • 2020-04-05
  • 1970-01-01
  • 2019-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多