pip如何删除带有前划线的错误安装的软件包:“ -pkgname”

时间:2019-07-10 14:33:38

标签: python pip

键入pip freeze时,我在列表顶部注意到以下警告:

  

警告:无法解析要求:-atplotlib

因此,我使用以下命令检查了已安装的软件包:pip list 而且,确实以下内容被视为软件包:

    Package         Version
    --------------- -------
    -atplotlib      3.0.3

我假设我在安装/升级matplotlib时可能遇到了错字,导致安装了上述“软件包”。

很遗憾,我无法在输入时将其删除

pip uninstall -atplotlib

作为命令读取,并返回以下错误:no such option: -a。 对如何进行有任何建议吗?

编辑

我找到了以下文件夹:

  

C:\ Users \ name \ Anaconda3 \ Lib \ site-packages \〜atplotlib

     

C:\ Users \ name \ Anaconda3 \ Lib \ site-packages \〜atplotlib-3.0.3-py3.7.egg-info

删除它们是否安全(足够)?

3 个答案:

答案 0 :(得分:0)

搜索损坏的程序包的名称(不带破折号)使我可以找到以下两个文件夹:

  

C:\ Users \ name \ Anaconda3 \ Lib \ site-packages \〜atplotlib

     

C:\ Users \ name \ Anaconda3 \ Lib \ site-packages \〜atplotlib-3.0.3-py3.7.egg-info

跟随Hoefling的评论(如下)

我检查了egg-info目录SOURCES.txt中的%dir%/~atplotlib-3.0.3-py3.7.egg-info/SOURCES.txt文件。浏览了此文件中的路径列表,并确保列出的所有路径都不包含~。然后,我将目录~atplotlib-3.0.3-py3.7.egg-info重命名为atplotlib-3.0.3-py3.7.egg-info(删除了波浪号~)。
最后,我运行pip uninstall atplotlib,它提示了以下内容:

  

卸载atplotlib-3.0.3:
  将删除:
  C:\ Users \ name \ Anaconda3 \ Lib \ site-packages \ atplotlib-3.0.3-py3.7.egg-info   C:\ Users \ name \ Anaconda3 \ Lib \ site-packages \ matplotlib
  C:\ Users \ name \ Anaconda3 \ Lib \ site-packages \ pylab.py

继续执行删除操作已解决了该问题(警告消失了,并且软件包不再位于软件包列表中。

答案 1 :(得分:0)

一种简单得多的解决方案是仅从site-packages目录中删除有问题的文件夹。

下面的更多信息(source):

卸载软件包时,pip现在将其重命名为名称 无法导入,并且一旦确认所有内容 将成功(包括在安装新版本时执行 升级),只有这样才能删除这些文件夹。如果出事了 它重命名它们。

以前,它将全部内容复制到另一个目录, 可能还有另一个驱动器,然后根据需要将它们复制回去。 因此,此更改是一项重大的性能改进,尤其是 用于其中包含大量文件的软件包。

您在这里看到的是由于某种原因删除失败- 也许点子崩溃了? -因此目录没有被删除。一世 认为一点完全忽略了它们,但也许还有其他东西 自从测试之后就改变了?

可以安全删除目录。

答案 2 :(得分:0)

在删除作为文件名开头的 rm -rf atplotlib 字符后,我不得不执行 ~

$ pip freeze | grep atplotlib
$ cd /home/user/.local/lib/python3.8/site-packages
$ mv \~ atplotlib atplotlib
$ pip freeze | grep atplotlib
atplotlib ==3.0.3
$  pip uninstall atplotlib
WARNING: Skipping atplotlib as it is not installed.
$ rm -rf atplotlib