pip 卸载不会完全删除包

Posted

技术标签:

【中文标题】pip 卸载不会完全删除包【英文标题】:pip uninstall does not remove package fully 【发布时间】:2021-12-08 17:02:48 【问题描述】:

长话短说,numpy 在我导入 matplotlib 时给了我错误,所以我想pip uninstall numpy 并重新安装它。但未能完全卸载 numpy。

RuntimeError                              Traceback (most recent call last)
RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
/tmp/ipykernel_26902/2971697587.py in <module>
----> 1 import matplotlib

~/.local/lib/python3.7/site-packages/matplotlib/__init__.py in <module>
    105 # cbook must import matplotlib only within function
    106 # definitions, so it is safe to import from it here.
--> 107 from . import _api, cbook, docstring, rcsetup
    108 from matplotlib.cbook import MatplotlibDeprecationWarning, sanitize_sequence
    109 from matplotlib.cbook import mplDeprecation  # deprecated

~/.local/lib/python3.7/site-packages/matplotlib/rcsetup.py in <module>
     24 from matplotlib import _api, animation, cbook
     25 from matplotlib.cbook import ls_mapper
---> 26 from matplotlib.colors import Colormap, is_color_like
     27 from matplotlib.fontconfig_pattern import parse_fontconfig_pattern
     28 from matplotlib._enums import JoinStyle, CapStyle

~/.local/lib/python3.7/site-packages/matplotlib/colors.py in <module>
     80 import matplotlib as mpl
     81 import numpy as np
---> 82 from matplotlib import _api, cbook, scale
     83 from ._color_data import BASE_COLORS, TABLEAU_COLORS, CSS4_COLORS, XKCD_COLORS
     84 

~/.local/lib/python3.7/site-packages/matplotlib/scale.py in <module>
     16 import matplotlib as mpl
     17 from matplotlib import _api, docstring
---> 18 from matplotlib.ticker import (
     19     NullFormatter, ScalarFormatter, LogFormatterSciNotation, LogitFormatter,
     20     NullLocator, LogLocator, AutoLocator, AutoMinorLocator,

~/.local/lib/python3.7/site-packages/matplotlib/ticker.py in <module>
    177 import matplotlib as mpl
    178 from matplotlib import _api, cbook
--> 179 from matplotlib import transforms as mtransforms
    180 
    181 _log = logging.getLogger(__name__)

~/.local/lib/python3.7/site-packages/matplotlib/transforms.py in <module>
     44 
     45 from matplotlib import _api
---> 46 from matplotlib._path import (
     47     affine_transform, count_bboxes_overlapping_bbox, update_path_extents)
     48 from .path import Path

ImportError: numpy.core.multiarray failed to import

在网上找到的解决方案不起作用后,我决定卸载并重新安装。 (ImportError: numpy.core.multiarray failed to import)

pi@raspberrypi:~ $ pip uninstall numpy
Uninstalling numpy-1.16.6:
  Would remove:
    /home/pi/.local/bin/f2py
    /home/pi/.local/bin/f2py2
    /home/pi/.local/bin/f2py2.7
    /home/pi/.local/lib/python2.7/site-packages/numpy-1.16.6.dist-info/*
    /home/pi/.local/lib/python2.7/site-packages/numpy/*
Proceed (y/n)? y
  Successfully uninstalled numpy-1.16.6
pi@raspberrypi:~ $ pip install numpy
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: numpy in /usr/lib/python2.7/dist-packages (1.16.2)

假设第一个命令已经卸载了numpy,为什么要求已经满足? 我尝试了pip uninstallpip3 uninstall。然后还进入pythonpython3 导入模块,仔细检查模块是否仍然安装。并且模块导入成功。 同样在/usr/lib/python2.7/dist-packages 文件夹中,numpy 仍然存在。 问题是什么? 如何成功卸载并重新安装 numpy?

编辑:我手动进入了所有python版本的dist-packages目录,以及rm所有numpy相关文件。然后重新安装。

【问题讨论】:

您能说说您使用的是哪个版本的python吗?另外,你在哪里运行你的程序(我看到了树莓派,但是有运行代码的软件吗?) 看来您正在混合使用 Python 2 和 3,因为错误消息清楚地提到正在为 Python 2 安装 numpy,即使您似乎想为 3 安装它? @AlirezaGhaffarian 我先做了 python 2,然后是 python3。运行了两个版本的卸载/安装命令,并检查了两个版本的文件夹。对困惑感到抱歉。我在 raspberrypi4 上运行它,当我这样做时,它目前没有在后台运行 python 代码。 @Grismar 我为 python 2 和 python 3 运行了 pip 命令。并使用两个版本进行了测试/验证。很抱歉在最初的帖子中造成混乱。 "假设第一个命令已经卸载 numpy,为什么要求已经满足?"注意你卸载的版本是numpy-1.16.6,但满足要求的是numpy in /usr/lib/python2.7/dist-packages (1.16.2) 【参考方案1】:

您可以使用此命令删除文件

rm -rf f2py
rm -rf 2py2
rm -rf numpy-1.16.6.dist-info/*
rm -rf numpy/*

或仅:

  rm  f2py
    rm  2py2
    rm  numpy-1.16.6.dist-info/*
    rm  numpy/*

【讨论】:

所以直接删除文件有同样的目的吗?没有其他缺点? 是的,你直接删除文件 你删除这个,你需要关心你删除的内容

以上是关于pip 卸载不会完全删除包的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu 完全干净的卸载docker

win10系统下MySQL的完全卸载与安装

idea 完全清除卸载

idea 完全清除卸载

pip包的升级安装和删除/卸载

Debian10完全卸载MariaDB