Python中ubuntu升级到python3.7后pip3运行报错且无法安装的解决办法

请教一下各位大神,怎么解决这个

root:~# pip3
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 574, in _build_master
    ws.require(__requires__)
  File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 892, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 783, in resolve
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.VersionConflict: (pip 10.0.1 (/usr/local/lib/python3.7/site-packages), Requirement.parse('pip==8.0.2'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File “/usr/local/bin/pip”, line 5, in <module> from pkg_resources import load_entry_point File “/usr/local/lib/python3.7/site-packages/pkg_resources/init.py”, line 3088, in <module> @_call_aside File “/usr/local/lib/python3.7/site-packages/pkg_resources/init.py”, line 3072, in _call_aside f(*args, **kwargs) File “/usr/local/lib/python3.7/site-packages/pkg_resources/init.py”, line 3101, in _initialize_master_working_set working_set = WorkingSet._build_master() File “/usr/local/lib/python3.7/site-packages/pkg_resources/init.py”, line 576, in _build_master return cls._build_from_requirements(requires) File “/usr/local/lib/python3.7/site-packages/pkg_resources/init.py”, line 589, in _build_from_requirements dists = ws.resolve(reqs, Environment()) File “/usr/local/lib/python3.7/site-packages/pkg_resources/init.py”, line 778, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The ‘pip==8.0.2’ distribution was not found and is required by the application


Python中ubuntu升级到python3.7后pip3运行报错且无法安装的解决办法

11 回复

pip 版本不对? 下个最新的试试


这个问题我遇到过,升级Python版本后pip确实容易出问题。核心原因是pip和Python版本不匹配,或者pip的配置指向了错误的Python路径。

直接解决方案:

  1. 重新安装pip(最彻底的方法):
# 先卸载现有的pip
sudo apt remove python3-pip
sudo python3.7 -m ensurepip --upgrade
  1. 如果还不行,用get-pip.py重装
# 下载安装脚本
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
# 用python3.7执行安装
sudo python3.7 get-pip.py
  1. 检查pip指向
# 查看pip3指向哪个Python
pip3 --version
# 应该显示类似:pip 21.x from /usr/local/lib/python3.7/site-packages/pip (python 3.7)

常见报错及快速处理:

  • 报错ModuleNotFoundError: No module named 'pip._internal' → 执行方案1
  • 报错pip is configured with locations that require TLS/SSL → 安装ssl依赖:
    sudo apt install libssl-dev
    sudo python3.7 -m pip install --upgrade pip
    

关键点:确保pip3命令调用的是python3.7对应的pip,而不是旧版本的。安装后可以用python3.7 -m pip install package来明确指定版本。

总结:重装pip并确保版本对应就能解决。

python -m pip?


root:~# python -m pip install -U pip
Exception:
Traceback (most recent call last):
File “/usr/local/lib/python2.7/dist-packages/pip/_internal/basecommand.py”, line 228, in main
status = self.run(options, args)
File “/usr/local/lib/python2.7/dist-packages/pip/_internal/commands/install.py”, line 241, in run
with self._build_session(options) as session:
File “/usr/local/lib/python2.7/dist-packages/pip/_internal/basecommand.py”, line 81, in _build_session
insecure_hosts=options.trusted_hosts,
File “/usr/local/lib/python2.7/dist-packages/pip/_internal/download.py”, line 338, in init
self.headers[“User-Agent”] = user_agent()
File “/usr/local/lib/python2.7/dist-packages/pip/_internal/download.py”, line 101, in user_agent
zip([“name”, “version”, “id”], distro.linux_distribution()),
File “/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py”, line 120, in linux_distribution
return _distro.linux_distribution(full_distribution_name)
File “/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py”, line 634, in linux_distribution
self.version(),
File “/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py”, line 688, in version
self.lsb_release_attr(‘release’),
File “/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py”, line 836, in lsb_release_attr
return self._lsb_release_info.get(attribute, ‘’)
File “/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py”, line 522, in get
ret = obj.dict[self._fname] = self._f(obj)
File “/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py”, line 933, in _lsb_release_info
stdout = subprocess.check_output(cmd, stderr=devnull)
File “/usr/lib/python2.7/subprocess.py”, line 574, in check_output
raise CalledProcessError(retcode, cmd, output=output)
CalledProcessError: Command ‘(‘lsb_release’, ‘-a’)’ returned non-zero exit status 1
Traceback (most recent call last):
File “/usr/lib/python2.7/runpy.py”, line 174, in _run_module_as_main
main”, fname, loader, pkg_name)
File “/usr/lib/python2.7/runpy.py”, line 72, in _run_code
exec code in run_globals
File “/usr/local/lib/python2.7/dist-packages/pip/main.py”, line 19, in <module>
sys.exit(_main())
File “/usr/local/lib/python2.7/dist-packages/pip/_internal/init.py”, line 246, in main
return command.main(cmd_args)
File “/usr/local/lib/python2.7/dist-packages/pip/_internal/basecommand.py”, line 264, in main
timeout=min(5, options.timeout)) as session:
File “/usr/local/lib/python2.7/dist-packages/pip/_internal/basecommand.py”, line 81, in _build_session
insecure_hosts=options.trusted_hosts,
File “/usr/local/lib/python2.7/dist-packages/pip/_internal/download.py”, line 338, in init
self.headers[“User-Agent”] = user_agent()
File “/usr/local/lib/python2.7/dist-packages/pip/_internal/download.py”, line 101, in user_agent
zip([“name”, “version”, “id”], distro.linux_distribution()),
File “/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py”, line 120, in linux_distribution
return _distro.linux_distribution(full_distribution_name)
File “/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py”, line 634, in linux_distribution
self.version(),
File “/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py”, line 688, in version
self.lsb_release_attr(‘release’),
File “/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py”, line 836, in lsb_release_attr
return self._lsb_release_info.get(attribute, ‘’)
File “/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py”, line 522, in get
ret = obj.dict[self._fname] = self._f(obj)
File “/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py”, line 933, in _lsb_release_info
stdout = subprocess.check_output(cmd, stderr=devnull)
File “/usr/lib/python2.7/subprocess.py”, line 574, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command ‘(‘lsb_release’, ‘-a’)’ returned non-zero exit status 1

root:~# sudo apt-get install python3-pip
sudo: unable to resolve host mycloud
Reading package lists… Done
Building dependency tree
Reading state information… Done
python3-pip is already the newest version (8.1.1-2ubuntu0.4).
0 upgraded, 0 newly installed, 0 to remove and 175 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.

我说的是 python3.7 的那个 python, 你这个用的是 python2.7 版本, 你可以用 python -m pip 来安装包

装不了,一样报错

为了一个 python 我重装系统,这成本有点高
直接了编译安装的

编译安装一般不会装到系统里面的,会装到用户目录或者 /opt 下面。
而且 Ubuntu 都有 Python 的 ppa 源。
https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa

可能是那条命令里面的 py 环境是指向 2,修改下试试

所以,系统自带的 python 就不要乱动,想用其他版本,那就用 pyenv 好了。

回到顶部