docker 容器中 运行 时 strptime 抛出错误
strptime throws error when run in docker container
当我运行
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'
怎么可能?
How can that be?
我假设您正在 IDE 或 Jupyter
中开发片段,而不是将其粘贴到容器中 运行 的代码中。如果是这样,请确保在您用于本地开发的容器映像中使用相同的 venv
,以避免出现此类调试起来很乏味的问题。
如果我使用 python 3.7
我无法重现错误,因此您可以通过使用最新的 docker 图像和 运行 脚本来解决错误更新的 python 版本(您使用的是 3.6
)。
Here 是关于如何设置 Docker 文件的复杂指南,您可以完全控制使用哪个版本的 python
,我发现它非常有用有帮助。
当我运行
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'
怎么可能?
How can that be?
我假设您正在 IDE 或 Jupyter
中开发片段,而不是将其粘贴到容器中 运行 的代码中。如果是这样,请确保在您用于本地开发的容器映像中使用相同的 venv
,以避免出现此类调试起来很乏味的问题。
如果我使用 python 3.7
我无法重现错误,因此您可以通过使用最新的 docker 图像和 运行 脚本来解决错误更新的 python 版本(您使用的是 3.6
)。
Here 是关于如何设置 Docker 文件的复杂指南,您可以完全控制使用哪个版本的 python
,我发现它非常有用有帮助。