先上图
AttributeError: 'module' object has no attribute 'packaging'
这个错误实在是离谱,我前几天装python模块都好好,突然出现这个错误,折腾两天
最初以为是pip出了问题,因此升级pip,问题依然存在
随后重新安装pip,加各种升级,错误改变了,上图
这是什么原因,我百思不得其解,总之,依然无法用pip装模块,无意间我有个发现,现在的错误链接的python变成/usr/local/lib/python3.4/dist-packages/setuptools-17.0-py3.4.egg/setuptools/了,用的python3.4
因为我编程用的是python2.7,难道是版本不兼容问题,赶快测试一个其它模块geoip2,很顺利的安装完成,果然是版本不兼容问题,于是我查看了pip命令
我的pip出现了五个命令,可能因为前面各种升级,导致多装了一个版本,而pip默认是使用pip3.4,也就是python3.4,为了验证猜想,我查看了python库,pip list和pip 2.7 list,对比结果后一目了然,刚使用pip install geoip2装的geoip2库顺利安装,因为兼容python3.4,已经顺利安装并在python3.4的库中,而python2.7的库中美有此模块的出现,尝试使用pip2.7 install geoip2,错误依然存在,还是最初的错误
这是我总结错误的原因可能是:
我升级pip后,附带升级了setuptools,版本升级为setuptools-17.0-py3.4.egg,只兼容python3.4,导致我安装python2.7的模块时无法安装,于是我决定重装python2.7版本适用的python-setuptools,在ubuntu中运行命令
r# apt-get install python-setuptools
狗血,错误又出现了
没有办法,一定要解决,要不严重影响coding进度,卸载不兼容软件包
# apt-get purge python-pkg-resources
# apt-get autoremove
# apt-get clean
重新安装
# apt-get install python-setuptools
# dpkg -l | grep python-setuptools
ii python-setuptools 3.3-1ubuntu1 all Python Distutils Enhancements (setuptools compatibility)
很欣慰,终于成功了
安装刚才因为不兼容报错的模块
#pip2 install suds
终于成功了,问题就此解决,验证当时总结问题的正确性。
结束语:
Ubuntu中使用软件经常会因为失误的更新或者自动更新导致软件出现问题,解决起来确实棘手。