python setup.py egg_info Check the logs for full command output. No module named pathlib

文章目录

  • 错误描述
    • 运行环境
    • 操作(命令)
    • 错误
  • 原因分析
    • 分析
    • 总结
  • 解决方案
    • Ubuntu同时安装Python2,Python3,Pip2和Pip3并配置
  • 总结

错误描述

运行环境

python2 和python3同时存在,各自的版本分别是——

Operating System: Ubuntu 18.04.5 LTS
Python 2.7.17
Python 3.6.9
pip 20.3.4 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)

python setup.py egg_info Check the logs for full command output. No module named pathlib_第1张图片

操作(命令)

 pip install websockets

错误

错误摘要:

No module named pathlib

错误详细:

ERROR: Command errored out with exit status 1:
     command: /usr/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-75NDD2/websockets/setup.py'"'"'; __file__='"'"'/tmp/pip-install-75NDD2/websockets/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-HpaLaU
         cwd: /tmp/pip-install-75NDD2/websockets/
    Complete output (5 lines):
    Traceback (most recent call last):
      File "", line 1, in <module>
      File "/tmp/pip-install-75NDD2/websockets/setup.py", line 1, in <module>
        import pathlib
    ImportError: No module named pathlib
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

原因分析

分析

直接原因
ImportError: No module named pathlib导入错误,没有名字叫pathlib的依赖

进一步分析

系统上同时安装了python2和python3,其中pip应该是和python2是对应关系,pip3应该是和python3是对应关系。但是当我pip3 -v的时候,提示没有安装。所以再解决问题之前,我打算重新安装一下python2和python3以及pip,或者是整理一下他们的关系。

Ubuntu同时安装Python2,Python3,Pip2和Pip3并配置

通过一顿恶补以后,我决定纠正我一些不良的安装习惯,重新尝试一下安装websockets模块。
这次我执行的代码如下

python3 -m pip install websockets

在这里插入图片描述
Success!

Congraduation!

总结

websockets是python3下面的包,而pip是python2的包管理,它的安装环境是python2,也就是说它是给python2装的包。所以理所当然会出现No module named pathlib这样的错误,可以推测出pathlib也是python3才会拥有的包。所以解决办法很简单,就是使用python3的包管理模块下载。要么是pip3 install websockets 要么是python3 -m pip install websockets。推荐使用后一种。

解决方案

Ubuntu同时安装Python2,Python3,Pip2和Pip3并配置

参考链接

# pip3 安装
python3 -m pip install websockets

总结

查过其他博客他们都说是要升级pip。。。也就是执行下面一行命令

pip3 install --upgrade pip

其实本质就是你正在安装的包里面某一个依赖,你当前环境下没有。升级一下pip或许就有了呢?嘻嘻。不过如果是pip版本太旧的话,一般系统都会提醒你升级。所以最关键的还是确定你想要安装的包的运行环境是python2.6 还是python3.6 ,又或者是python3.7。而不是盲目的将pip和pip3 一概而论。迟早会出错的。就算是装上了哈哈哈哈。好啦,最后推荐使用 python -m pip 替代使用pip

你可能感兴趣的:(python)