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

时间:2020-01-15 09:42:14

标签: python datetime strptime

我跑步时

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'

那怎么可能?

1 个答案:

答案 0 :(得分:1)

那怎么可能?

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

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

Here是有关如何设置Docker文件的复杂指南,您可以完全控制使用哪个版本的3.6,我发现这非常有帮助。