python中安装模块包版本冲突问题的解决

yipeiwu_com6年前Python基础

问题

最近在工作中遇到一个问题,在安装python软件包的时候,经常会遇类似这样一个问题。比如对于ipython,机子本身安装的版本是1.2.1,显然太低,不足以跑jupyter,尝试着用pip安装,却发现下载的过程一路畅通,但是安装的时候却总是会报这样一个错误。

错误提示如下:

......'Not uninstalling ipython at /usr/lib/python2.7/dist-packages, owned by OS'......

最终显示了ipython已经成功安装,但是查看version的时候却仍然是1.2.1,弄得我十分头大。

原因

后来研究了一下,发现其实造成这个问题的原因很简单,就是因为ubuntu的apt-get版本与pip安装的版本冲突。由于apt-get的'地位‘要比pip高那么一点(毕竟亲爹),系统会优先使用apt-get 里面的软件包。但是apt-get 里的软件通常特别的老旧,完全无法跟得上python包的更新速度,pip虽然版本新,但是却不能删除apt-get 的老旧版本。。。。。。这就造成了错误中提到的的无法卸载的问题了。

解决方法

至于此,解决问题的方法已经很清楚了,只要手动卸载掉apt-get里对应的过时的软件包即可。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对【听图阁-专注于Python设计】的支持。

相关文章

浅析Python中yield关键词的作用与用法

前言 为了理解yield是什么,首先要明白生成器(generator)是什么,在讲生成器之前先说说迭代器(iterator),当创建一个列表(list)时,你可以逐个的读取每一项,这就叫...

python 打印直角三角形,等边三角形,菱形,正方形的代码

三角形 等腰直角三角形1 2.7 #coding:utf-8 rows = int(raw_input('输入列数: ')) i = j = k = 1 #声明变量,i用于控制外层循...

python程序中的线程操作 concurrent模块使用详解

一、concurrent模块的介绍 concurrent.futures模块提供了高度封装的异步调用接口 ThreadPoolExecutor:线程池,提供异步调用 ProcessPo...

Python实现把类当做字典来访问

定义一个类将它实例化,我们可以通过obj.属性来访问类的属性,如果想获取类的所有实例变量,我们可以使用obj.__dict__来访问,如下: class A: def __ini...

介绍Python的@property装饰器的用法

在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改: s = Student() s.score = 9999 这显然不合逻...