[当我尝试将熊猫导入我的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上未导出语言环境有关。
似乎将wxpython降级到4.0.7版将解决此问题。