使用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