Ubuntu Python 3 下载、安装 pip 并解决 'ImportError: cannot import name etree' 问题

版权声明:如需转载或引用,请注明出处。 https://blog.csdn.net/weixin_39278265/article/details/87798524

前言

本文旨在介绍:
1)如何在Ubuntu下Python3版本上下载并安装pip;
2)解决Python 运行from lxml import etree时碰到的 ‘ImportError: cannot import name etree’ 问题。

1 下载并安装pip

我的系统是: Ubuntu 16.04
Python版本是: 3.6

下载pip的话,在终端运行如下命令:

curl https://bootstrap.pypa.io/get-pip.py | sudo -H python3.6
#意思是先使用curl从远程url下载get-pip.py 文件;然后sudo下用Python3.6运行这个py文件来安装pip

然后用如下命令来验证是不是安装成功啦:

$ (pip -V && pip3 -V && pip3.6 -V) | uniq
pip 18.0 from /usr/local/lib/python3.6/dist-packages (python 3.6)
$ python3.6 -m pip -V
pip 18.0 from /usr/local/lib/python3.6/dist-packages (python 3.6)

如上表明 pip,pip3,pip3.6 都指向同一个目标(target),这就表示安装成功了。

1.1 可能遇到的问题

像现在的Ubuntu 14.04或者16.04版本的系统,里面都预装了Python3.4和Python2.7.

这时候,如果你使用 apt-get update & apt-get install python3.6 来安装Python3.6,然后用apt-get install python3-pip来安装pip的话,很有可能直接装在 /usr/local/lib/python3.4/dist-packages 文件夹的路径下了,这时候呢,再运行Python3.6的程序,很可能就报错了。

问:怎么解决这个问题?
答:不要用apt-get install python3-pip来安装pip,就用curl https://bootstrap.pypa.io/get-pip.py | sudo -H python3.6这个指令来安装pip,这样才能绑定到Python3.6,而不是3.4。


以上,参考[2]。


2 解决Python 运行from lxml import etree时碰到的 ‘ImportError: cannot import name etree’

有了第一步,即安装好了pip之后,这个就很好解决了。
pip install lxml==4.3.0 (4.3.0是我需要的lxml版本),看一下能不能安装 lxml,如果显示lxml在之前就已经安装。那么这时候卸载重装一遍就好:

pip uninstall lxml==4.3.0
pip install lxml==4.3.0

注意:出错还有另外的可能是你的Python项目中有名称为lxml的文件(夹),就有可能导致这种错误。这种情况的话,把项目中对应的文件名称修改即可。


以上,参考[3]。


参考文献

[1] curl https://baike.baidu.com/item/curl/10098606?fr=aladdin
[2] How to install pip for Python 3.6 on Ubuntu 16.10? https://askubuntu.com/questions/889535/how-to-install-pip-for-python-3-6-on-ubuntu-16-10
[3] Receiving ‘ImportError: cannot import name etree’ when using lxml in Python on Mac https://stackoverflow.com/questions/13749916/receiving-importerror-cannot-import-name-etree-when-using-lxml-in-python-on-m
[4] ImportError: cannot import name ‘etree’ on python 3.6 https://stackoverflow.com/questions/53406638/importerror-cannot-import-name-etree-on-python-3-6

猜你喜欢

转载自blog.csdn.net/weixin_39278265/article/details/87798524