【最后203篇系列】002 - 两个小坑(容器时间错误和kafka模块报错
这里两个小坑填了,希望有用。
1 Multiple conflicting time zone configurations found:\n/etc/timezone: Asia/Shanghai\n/etc/localtime is a symlink to: Etc/UTC\nFix the configuration, or set the time zone in a TZ environment variable.
我碰到这个错误是发生在用一个容器执行apscheduler程序,挂载了宿主机的时间后报错,解决方法如下:
切入容器内:
时区问题
检查
cat /etc/timezone
ls -l /etc/localtime
修复
rm /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo "Asia/Shanghai" > /etc/timezone
然后就好了
2 ModuleNotFoundError: No module named 'kafka.vendor.six.moves'
这个可能会发生在高版本的python装kafka-python包之后。
解决办法:装ng包就可以,低版本python也可以装ng包。(高低大约以py3.9分界)
#pip3 install kafka-python -i https://mirrors.aliyun.com/pypi/simple/
# python >= 3.12 要安装 kafka-python-ng
pip3 install kafka-python-ng -i https://mirrors.aliyun.com/pypi/simple/
虽然confluent -kafka的效率更高,不过使用起来未必有kafka-python方便。我是两套都有。
另外,安装confluent-kafka时,如果是低版本ubuntu(<20.04)可能会遇到一些系统依赖包的报错,主要和c的支持有关。我是通过conda解决的(conda install -c conda-forge librdkafka
)。结论是ubuntu18.04及以上,都可以同时装两个包。