ubuntu升级pip后, ImportError: cannot import name ‘main‘
场景描述:
原先pip安装完成之后,一直没有更新版本,原pip版本为8.1.1,今天安装python 包pysftp的时候,提示需要升级pip到(pip 10.0.1);
于是乎,直接手到擒来,终端命令行执行:
$ sudo pip install --upgrade pip
升级完成之后,查看版本pip --version 显示:pip 10.0.1
之后安装sudo pip install pysftp
提示:
ImportError: cannot import name ‘main‘
啥问题呀,百度?!!!
https://www.cnblogs.com/white-the-Alan/p/8900554.html
改完之后没有效果!啥子原因!囧,我特发!
原因分析:
1. 提示报错为:/user/bin/pip第九行有问题
2. which pip
/home/odoo/.local/bin/pip
搜嘎,原来更新升级之后的pip安装路径变了,没有更新/user/bin下的配置,导致我们运行pip命令的时候,执行的还是原先就的程序。我们知道/user/bin目录下的程序,基本为程序包安装时候创建的软链接!!!
知道问题原因后,就知道如何处理了。
解决方式:
两种,第一种删除旧的/user/bin下的pip软链接,重新设置。
方式二,直接卸载原有pip重新安装,指定软链接为新的路径。
这里采用的第二种,重装前先卸载ubuntu的pip包
sudo apt-get remove python-pip
重新安装:sudo apt-get install python-pip python-dev build-essential
odoo@test:/usr/bin$ sudo apt-get install python-pip python-dev build-essential Reading package lists... Done Building dependency tree Reading state information... Done build-essential is already the newest version (12.1ubuntu2). python-dev is already the newest version (2.7.12-1~16.04). python-dev set to manually installed. The following packages were automatically installed and are no longer required: linux-headers-4.13.0-36 linux-headers-4.13.0-36-generic linux-headers-4.13.0-37 linux-headers-4.13.0-37-generic linux-image-4.13.0-36-generic linux-image-4.13.0-37-generic linux-image-extra-4.13.0-36-generic linux-image-extra-4.13.0-37-generic Use 'sudo apt autoremove' to remove them. The following NEW packages will be installed: python-pip 0 upgraded, 1 newly installed, 0 to remove and 106 not upgraded. Need to get 144 kB of archives. After this operation, 635 kB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://cn.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 python-pip all 8.1.1-2ubuntu0.4 [144 kB] Fetched 144 kB in 1s (94.4 kB/s) Selecting previously unselected package python-pip. (Reading database ... 304775 files and directories currently installed.) Preparing to unpack .../python-pip_8.1.1-2ubuntu0.4_all.deb ... Unpacking python-pip (8.1.1-2ubuntu0.4) ... Processing triggers for man-db (2.7.5-1) ... Setting up python-pip (8.1.1-2ubuntu0.4) ... odoo@test:/usr/bin$ odoo@test:/usr/bin$ pip --version pip 10.0.1 from /home/odoo/.local/lib/python2.7/site-packages/pip (python 2.7)
创建软链接:
sudo ln -s /usr/local/bin/pip /usr/bin/pip
pip --version pip 10.0.1 from /usr/local/lib/python2.7/dist-packages/pip-10.0.1-py2.7.egg/pip (python 2.7)
安装pysftp 这里切换在root用户下安装了,普通用户的话需要加sudo pip install pysftp
root@odoo-test:/usr/local/bin# pip install pysftp Collecting pysftp Downloading https://files.pythonhosted.org/packages/36/60/45f30390a38b1f92e0a8cf4de178cd7c2bc3f874c85430e40ccf99df8fe7/pysftp-0.2.9.tar.gz Collecting paramiko>=1.17 (from pysftp) Downloading https://files.pythonhosted.org/packages/3e/db/cb7b6656e0e7387637ce850689084dc0b94b44df31cc52e5fc5c2c4fd2c1/paramiko-2.4.1-py2.py3-none-any.whl (194kB) 100% |████████████████████████████████| 194kB 5.8kB/s Requirement already satisfied: pyasn1>=0.1.7 in /usr/lib/python2.7/dist-packages (from paramiko>=1.17->pysftp) (0.1.9) Collecting bcrypt>=3.1.3 (from paramiko>=1.17->pysftp) Downloading https://files.pythonhosted.org/packages/2e/5a/2abeae20ce294fe6bf63da0e0b5a885c788e1360bbd124edcc0429678a59/bcrypt-3.1.4-cp27-cp27mu-manylinux1_x86_64.whl (57kB) 100% |████████████████████████████████| 61kB 6.0kB/s Collecting cryptography>=1.5 (from paramiko>=1.17->pysftp) Downloading https://files.pythonhosted.org/packages/dd/c2/3a5bfefb25690725824ade71e6b65449f0a9f4b29702cce10560f786ebf6/cryptography-2.2.2-cp27-cp27mu-manylinux1_x86_64.whl (2.2MB) 100% |████████████████████████████████| 2.2MB 22kB/s Collecting pynacl>=1.0.1 (from paramiko>=1.17->pysftp) Downloading https://files.pythonhosted.org/packages/80/3d/d709b9fbd69e21dd3a4d34eb690c5484094699e03b7447bc7eb173cfd7b6/PyNaCl-1.2.1-cp27-cp27mu-manylinux1_x86_64.whl (696kB) 100% |████████████████████████████████| 706kB 5.5kB/s Requirement already satisfied: six>=1.4.1 in /usr/lib/python2.7/dist-packages (from bcrypt>=3.1.3->paramiko>=1.17->pysftp) (1.10.0) Collecting cffi>=1.1 (from bcrypt>=3.1.3->paramiko>=1.17->pysftp) Downloading https://files.pythonhosted.org/packages/14/dd/3e7a1e1280e7d767bd3fa15791759c91ec19058ebe31217fe66f3e9a8c49/cffi-1.11.5-cp27-cp27mu-manylinux1_x86_64.whl (407kB) 100% |████████████████████████████████| 409kB 4.7kB/s Requirement already satisfied: enum34; python_version < "3" in /usr/lib/python2.7/dist-packages (from cryptography>=1.5->paramiko>=1.17->pysftp) (1.1.2) Collecting asn1crypto>=0.21.0 (from cryptography>=1.5->paramiko>=1.17->pysftp) Downloading https://files.pythonhosted.org/packages/ea/cd/35485615f45f30a510576f1a56d1e0a7ad7bd8ab5ed7cdc600ef7cd06222/asn1crypto-0.24.0-py2.py3-none-any.whl (101kB) 100% |████████████████████████████████| 102kB 7.0kB/s Collecting idna>=2.1 (from cryptography>=1.5->paramiko>=1.17->pysftp) Downloading https://files.pythonhosted.org/packages/27/cc/6dd9a3869f15c2edfab863b992838277279ce92663d334df9ecf5106f5c6/idna-2.6-py2.py3-none-any.whl (56kB) 100% |████████████████████████████████| 61kB 5.9kB/s Requirement already satisfied: ipaddress; python_version < "3" in /usr/lib/python2.7/dist-packages (from cryptography>=1.5->paramiko>=1.17->pysftp) (1.0.16) Collecting pycparser (from cffi>=1.1->bcrypt>=3.1.3->paramiko>=1.17->pysftp) Downloading https://files.pythonhosted.org/packages/8c/2d/aad7f16146f4197a11f8e91fb81df177adcc2073d36a17b1491fd09df6ed/pycparser-2.18.tar.gz (245kB) 100% |████████████████████████████████| 256kB 6.4kB/s Building wheels for collected packages: pysftp, pycparser Running setup.py bdist_wheel for pysftp ... done Stored in directory: /root/.cache/pip/wheels/d4/53/02/181ea4f6c795b40c4f1d2022ba2ed15cf811d22975eb2e5968 Running setup.py bdist_wheel for pycparser ... done Stored in directory: /root/.cache/pip/wheels/c0/a1/27/5ba234bd77ea5a290cbf6d675259ec52293193467a12ef1f46 Successfully built pysftp pycparser Installing collected packages: pycparser, cffi, bcrypt, asn1crypto, idna, cryptography, pynacl, paramiko, pysftp Found existing installation: idna 2.0 Uninstalling idna-2.0: Successfully uninstalled idna-2.0 Found existing installation: cryptography 1.2.3 Uninstalling cryptography-1.2.3: Successfully uninstalled cryptography-1.2.3 Successfully installed asn1crypto-0.24.0 bcrypt-3.1.4 cffi-1.11.5 cryptography-2.2.2 idna-2.6 paramiko-2.4.1 pycparser-2.18 pynacl-1.2.1 pysftp-0.2.9
OK !