在docker容器中运行时strptime引发错误

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

我跑步时

from datetime import datetime
print(datetime.strptime('2020-01-15 09:20:00.00+00:00', '%Y-%m-%d %H:%M:%S.%f%z'))

它打印出来

2020-01-15 09:20:00+00:00

[当我使用完全相同的行运行Docker容器时,会引发此错误:

File "/vdp/base_functions.py", line 9, in <module>
j2lm@VB    |     print(datetime.strptime('2020-01-15 09:20:00.00+00:00', '%Y-%m-%d %H:%M:%S.%f%z'))
j2lm@VB    |   File "/usr/lib/python3.6/_strptime.py", line 565, in _strptime_datetime
j2lm@VB    |     tt, fraction = _strptime(data_string, format)
j2lm@VB    |   File "/usr/lib/python3.6/_strptime.py", line 362, in _strptime
j2lm@VB    |     (data_string, format))
j2lm@VB    | ValueError: time data '2020-01-15 09:20:00.00+00:00' does not match format '%Y-%m-%d %H:%M:%S.%f%z'

怎么可能?

python datetime strptime
1个回答
1
投票

怎么可能?

[我假设您正在某些IDE中开发代码段,或Jupyter,而不是将其粘贴到容器中运行的代码中。如果是这样,请确保在您用于本地开发的容器映像中使用相同的venv,以避免调试这类麻烦的问题。

[如果使用python 3.7,则无法重现该错误,因此您可能仅通过使用最新的docker映像并使用较新的python版本运行脚本即可解决该错误(您使用3.6)。

[Here是有关如何设置Docker文件的复杂指南,您可以完全控制使用哪个版本的python,我觉得非常有用。

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