標籤:
在Ubuntu14.04上,通過sudo apt-get install python-pip下載的pip版本有些老,在使用時很可能出現下面的問題
[email protected]:~# pip Traceback (most recent call last): File "/usr/bin/pip", line 9, in <module> load_entry_point(‘pip==1.5.4‘, ‘console_scripts‘, ‘pip‘)() File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 351, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2363, in load_entry_point return ep.load() File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2088, in load entry = __import__(self.module_name, globals(),globals(), [‘__name__‘]) File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 11, in <module> from pip.vcs import git, mercurial, subversion, bazaar # noqa File "/usr/lib/python2.7/dist-packages/pip/vcs/mercurial.py", line 9, in <module> from pip.download import path_to_url File "/usr/lib/python2.7/dist-packages/pip/download.py", line 25, in <module> from requests.compat import IncompleteReadImportError: cannot import name IncompleteRead
這是因為通過apt-get安裝的pip版本太老了,老的pip版本依賴requests.compat.IncompleteRead,而在2.4.0版本的requests中已經移除了
requests.compat.IncompleteRead,解決方案是先卸載pip(命令為sudo apt-get remove python-pip),然後通過下面的方式重新下載安裝
wget https://bootstrap.pypa.io/get-pip.py --no-check-certificatesudo python get-pip.py
安裝完後,測試一下吧,發現不能識別pip這個命令,額,我也不知道怎麼回事,解決辦法是在/usr/bin目錄下建一個軟肋接,指向到/usr/local/bin/pip
[email protected]:~$ pip-bash: /usr/bin/pip: No such file or directory # $PATH的值包含/usr/bin[email protected]-test2:~$ which pip/usr/local/bin/pip # $PATH的值包含/usr/local/bin[email protected]-test2:~$ [email protected]-test2:~$ echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games[email protected]-test2:~$
Ubuntu14.04上安裝pip的方法