wxPython对语言环境造成熊猫崩溃的原因?

问题描述 投票:0回答:1

[当我尝试将熊猫导入我的wxPython应用程序时,会引发“ ValueError:未知语言环境:en-US”异常。我可以通过在应用程序启动之前导入熊猫来避免这种情况,但这似乎是一个愚蠢的要求。

这在简单的wx应用中很容易重复:

import wx


class TestApp(wx.App):
    def __init__(self, redirect=False, filename=None):
        wx.App.__init__(self, redirect, filename)
        import pandas

        self.frame = wx.Frame(None, size=wx.Size(670,670), title='Test App')
        self.sizer = wx.BoxSizer(wx.VERTICAL)

        self.frame.SetSizer(self.sizer)

if __name__ == '__main__':
    app = TestApp()
    app.MainLoop()

当我从虚拟环境运行此应用程序时,我得到了此堆栈跟踪:

(test) PS env_test> python .\test2.py                                                       Traceback (most recent call last):
  File ".\test2.py", line 16, in <module>
    app = TestApp()
  File ".\test2.py", line 8, in __init__
    import pandas
  File "E:\Envs\test\lib\site-packages\pandas\__init__.py", line 32, in <module>
    from pandas._libs import hashtable as _hashtable, lib as _lib, tslib as _tslib
  File "E:\Envs\test\lib\site-packages\pandas\_libs\__init__.py", line 3, in <module>
    from .tslibs import (
  File "E:\Envs\test\lib\site-packages\pandas\_libs\tslibs\__init__.py", line 3, in <module>
    from .conversion import localize_pydatetime, normalize_date
  File "pandas\_libs\tslibs\c_timestamp.pxd", line 7, in init pandas._libs.tslibs.conversion
  File "pandas\_libs\tslibs\c_timestamp.pyx", line 1, in init pandas._libs.tslibs.c_timestamp
  File "pandas\_libs\tslibs\tzconversion.pyx", line 1, in init pandas._libs.tslibs.tzconversion
  File "pandas\_libs\tslibs\timedeltas.pyx", line 1, in init pandas._libs.tslibs.timedeltas
  File "pandas\_libs\tslibs\offsets.pyx", line 1, in init pandas._libs.tslibs.offsets
  File "pandas\_libs\tslibs\ccalendar.pyx", line 13, in init pandas._libs.tslibs.ccalendar
  File "pandas\_libs\tslibs\strptime.pyx", line 625, in init pandas._libs.tslibs.strptime
  File "pandas\_libs\tslibs\strptime.pyx", line 530, in pandas._libs.tslibs.strptime.TimeRE.__init__
  File "pandas\_libs\tslibs\strptime.pyx", line 405, in pandas._libs.tslibs.strptime.LocaleTime.__init__
  File "pandas\_libs\tslibs\strptime.pyx", line 362, in pandas._libs.tslibs.strptime._getlang
  File "c:\python37\lib\locale.py", line 587, in getlocale
    return _parse_localename(localename)
  File "c:\python37\lib\locale.py", line 495, in _parse_localename
    raise ValueError('unknown locale: %s' % localename)
ValueError: unknown locale: en-US

我正在使用python3.7.4在Windows 10上运行虚拟环境,并且安装了最少的软件包:

Package         Version
--------------- -------
numpy           1.18.4
pandas          1.0.3
Pillow          7.1.2
pip             20.1
python-dateutil 2.8.1
pytz            2020.1
setuptools      46.1.3
six             1.14.0
wheel           0.34.2
wxPython        4.1.0

我可以在应用程序外部导入大熊猫:

Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas
>>> df = pandas.DataFrame()
>>>

我很困惑,一直无法在其他地方找到答案。其他的熊猫“未知语言环境”错误似乎与在OSX上未导出语言环境有关。

python pandas wxpython wxpython-phoenix
1个回答
0
投票

似乎将wxpython降级到4.0.7版将解决此问题。

© www.soinside.com 2019 - 2024. All rights reserved.