Python中读取lib下模块失败的问题(No module named ssl_match_hostname)

之前的好好的程序,  最近一次停机, 重启python服务时, 报错了:

从错误日志中可以看出, 是backports.ssl_match_hostname这个模块没有安装, 真的很难过, 因为明明它就在那里,

执行命令 pip list 查看已经安装的python模块列表:

然后搜索了一大堆关于这个问题的资料, 说是这个模块是tornado的依赖模块, 重新pip安装一下就好了,

pip install xxx

pip uninstall xxx

我重试了N遍也没有好, 是的, 依然很难过 …

但是我没有放弃, 在我无数遍的install , uninstall过后, 突然发现了个问题, tornado安装的路径实在lib64下,

/usr/lib64/python2.6/site-packages

依赖模块backports*安装在了lib下,

/usr/lib/python2.6/site-packages

然后觉得这可能会导致tornado包含引入依赖包时, 在lib64下是找不到的, 然后报了上面的错,

基于这个想法, 把依赖包的文件copy了一份到lib64下,

cp -r /usr/lib/python2.6/site-packages/backports* /usr/lib64/python2.6/site-packages

程序终于可以正常执行了 …

好感动 …

 

Python为什么会这样呢?  还是说我之前配置过库的寻找路径? 不记得了, 后面找到原因再补充吧!



发表评论

电子邮件地址不会被公开。