使用pip install xxx 来安装某一库。php
使用 pip uninstall xxx 来卸载。python
而pip 的也能够采用常见的两种安装方法ubuntu
在centos系列下
使用sudo yum install python-pip
删除sudo yum remove python-pipcentos
在ubuntu 系列下
使用 sudo apt-get install python-pip
删除 sudo apt-get autoremove python-pippython2.7
这两个系统均可以使用
https://pip.pypa.io/en/stable/installing/
提供的安装py脚本
下载后执行 sudo python get-pip.pyurl
我在删除requests这个第三方库时候,centos上直接执行了
pip uninstall requests 便删除掉了该库。spa
而一样的操做在ubuntu上却提示了
Not uninstalling at /usr/lib/python2.7/dist-packages, owned by OS3d
能够看到提示属于系统,没法删除。code
非常疑惑。一个小小的库,怎么属于系统了呢?blog
原来这台ubuntu 的pip 采用的是apt-get install python-pip 方法安装的。
import requests
print requests.__file__
上面的方法能够看到该库的位置
/usr/lib/python2.7/dist-packages
而我印象中的库通常都是存放在site-packages 中。
查阅了一下
dist-packages 是 Debian特定惯例,这也存在于像是ubuntu上。 若是使用Debian软件管理器安装, 模块将被安装到 dist-packages:
/usr/lib/python2.7/dist-packagesdist-packages取代了site-packages。从Debian安装包安装的第三方的Python软件 被 安装到 dist-packages,不是 site-packages.这是为了减小,系统自带python 和 你手动安装的python 之间的冲突。
这就是说,若是你手动安装python,它会直接使用目录site-packages。这容许你让两个安装隔离开来,特别是由于Debian 和 Ubuntu 应用 python的系统版本 到 许多的系统实体。
可见是ubuntu的这个特性形成的问题。
因而到该目录删除掉requests 包。
apt-get autoremove python-pip
采用脚本的方法安装。
以后执行发现提示 No such file or directory
which 一下,发现pip 和python 不在一个目录下
执行 ln -s /usr/local/bin/pip /usr/lib/pip
创建软链接,而后使用该pip 安装的requests就进入正常的site-packages 文件夹中。
也可使用pip uninstall 删除了。
在交互界面import requests 后,提示
/usr/local/lib/python2.7/dist-packages/requests/__init__.py:80: RequestsDependencyWarning: urllib3 (1.21.1) or chardet (2.0.1) doesn’t match a supported version!
RequestsDependencyWarning)
可见requests库依赖的包有 urllib3以及 chardet
版本不匹配是由于,咱们使用apt-get install requests 时也自动安装了这俩个依赖库,而咱们删除时却没有删掉他们。
为此,执行
apt-get autoremove urllib3
apt-get autoremove chardet
这样就删除掉存在/usr/lib/python2.7/dist-packages下面的包。
在执行pip install requests --upgrade.
这次的依赖包就会安装到 /usr/local/lib/pytrhon2.7/dist-packages 下面。
再次导入就不会有问题,成功安装提示以下:
drwxr-sr-x 2 root staff 4096 8月 28 14:23 requestsdrwxr-sr-x 2 root staff 4096 8月 28 14:23 requests-2.19.1.dist-infodrwxr-sr-x 5 root staff 4096 8月 28 14:23 urllib3drwxr-sr-x 2 root staff 4096 8月 28 14:23 urllib3-1.23.dist-info