【问题标题】:How do I remove packages installed with Python's easy_install?如何删除使用 Python 的 easy_install 安装的软件包?
【发布时间】:2010-11-16 22:20:17
【问题描述】:

Python 的easy_install 使得安装新包非常方便。但是,据我所知,它没有实现依赖管理器的其他常见功能 - 列出和删除已安装的包。

找出已安装内容的最佳方法是什么,以及删除已安装软件包的首选方法是什么?如果我手动删除软件包(例如通过rm /usr/local/lib/python2.6/dist-packages/my_installed_pkg.egg 或类似方式),是否有任何文件需要更新?

【问题讨论】:

  • 在我写这篇评论时,这篇文章已经有将近 2 年的历史了。 pip 现在实际上是 easy_install 的替代品,并且可以正确、干净地删除后者安装的软件包(包括鸡蛋)。请确保对建议的答案进行投票。
  • 所谓 "easy_install" 的矛盾说法 - 没有 a: 对应的 easy_uninstall,也没有 b: 懒得在 --help 中提及如何做到这一点 - 让我大吃一惊 / _激怒我的灵魂 / 让我的心难过​​i>。
  • @mike 如果我想卸载 pip 怎么办? (:

标签: python packages setuptools easy-install


【解决方案1】:

这对我有用。它与以前的答案相似,但包的路径不同。

  1. sudo easy_install -m
  2. sudo rm -rf /Library/Python/2.7/site-packages/.egg

平台:MacOS High Sierra 版本 10.13.3

【讨论】:

  • 第一个命令为我产生了这个错误:error: No urls, filenames, or requirements specified (see --help)
【解决方案2】:

官方(?)说明:http://peak.telecommunity.com/DevCenter/EasyInstall#uninstalling-packages

如果你用另一个版本替换了一个包,那么你可以通过删除 PackageName-versioninfo.egg 文件或目录(在安装目录中找到)来删除你不需要的包。

如果你想删除一个包的当前安装版本(或一个包的所有版本),你应该首先运行:

easy_install -mxN PackageName

这将确保 Python 不会继续搜索您计划删除的包。完成此操作后,您可以安全地删除 .egg 文件或目录以及您希望删除的任何脚本。

【讨论】:

  • 有些事情似乎永远不会改变! PIP 拒绝安装 TRAC hack 插件(trac admin),只有 easy_install 有效。但我不小心安装了一个旧版本。并且 easy_install 无法从项目的 https url 修复该问题。所以我用 PIP 将其删除,但重新安装 TRAC 后看不到插件。所以我使用这里的信息来隔离pkg并手动删除它,然后重新安装。哇。 (python 2.7)
【解决方案3】:

pip 是 setuptools/easy_install 的替代品,提供“卸载”命令。

根据installation instructions安装pip:

$ wget https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py

然后您可以使用pip uninstall 删除使用easy_install 安装的软件包

【讨论】:

  • 如果您在使用 pip 卸载模块时遇到问题,请确保您的 pip 安装本身是最新的: pip install -U pip # 那是大写的 U
  • pip 为我卸载了一个 easy_install 安装包。不过,我不得不多次运行 'pip uninstall ' 来删除所有版本的包。所以记住这一点。它甚至删除了一个“开发”安装包,结果有点混乱。
  • 但是如何删除非活动包
  • 我使用easy_install安装pip来卸载easy_install安装。
  • 答案是“安装 pip”,但实际上 pip 似乎是现代 Python 内置的
【解决方案4】:

首先你必须运行这个命令:

$ easy_install -m [PACKAGE]

它会删除包的所有依赖项。

然后删除那个包的 egg 文件:

$ sudo rm -rf /usr/local/lib/python2.X/site-packages/[PACKAGE].egg

【讨论】:

  • 更多文档在这里:peak.telecommunity.com/DevCenter/…
  • -m 据我所知,这不是删除任何内容的正确easy_install 命令,但这个答案给出了其他答案没有的easy_install 包的关键位置。在我看来,安装 pip 之前的 rm -rf /usr/local/lib/python* 是可行的方法
【解决方案5】:

我只删除这个文件:easy-install.pth 工作,休息 pip install django==1.3.7

【讨论】:

    【解决方案6】:

    要列出已安装的 Python 包,您可以使用 yolk -l。不过,您需要先使用easy_install yolk

    【讨论】:

      【解决方案7】:

      在尝试卸载随时间安装的许多随机 Python 包时遇到了这个问题。

      使用来自该线程的信息,这是我想出的:

      cat package_list | xargs -n1 sudo pip uninstall -y
      

      package_list 已从 virtualenv 中的 pip freeze 中清除(awk)。

      要删除几乎所有 Python 包:

      yolk -l | cut -f 1 -d " " | grep -v "setuptools|pip|ETC.." | xargs -n1 pip uninstall -y
      

      【讨论】:

      • <package_list xargs -n1 sudo pip uninstall -y 避免 UUOC!
      【解决方案8】:

      我在 MacOS X Leopard 10.6.blah 上遇到了同样的问题。

      解决方案是确保您调用的是 MacPorts Python:

      sudo port install python26
      sudo port install python_select
      sudo python_select python26
      sudo port install py26-mysql
      

      希望这会有所帮助。

      【讨论】:

      • 但是,我已经完全从 MacPorts 切换到了 Brew,Mac 的原生 python 2.7。通过 setup_tools 安装的 MySQLdb
      【解决方案9】:

      所有信息都在其他答案中,但没有一个能概括两个您的要求或似乎使事情变得不必要地复杂:

      • 为了您的移除需求,请使用:

        pip uninstall <package>
        

        (使用easy_install pip安装)

      • 对于您的“列出已安装包”的需要,请使用:

        pip freeze
        

        或者:

        yolk -l
        

        可以输出更多的包细节。

        (通过easy_install yolkpip install yolk 安装)

      【讨论】:

      • 运行yolk -l后,我看到我有重复的包,例如“scipy -0.11.0 -non-active development”和“scipy -0.14.0... -active development”。如何卸载这些非活动开发包?
      • 这很好,只是我想卸载由 easy_install 安装的 pip。这是因为它最终安装了错误的 Python 版本。
      【解决方案10】:

      网上有several 来源建议通过使用 -m 选项重新安装软件包然后删除 lib/ 中的 .egg 文件和 bin/ 中的二进制文件来进行黑客攻击。此外,有关此 setuptools 问题的讨论可以在 python 错误跟踪器上找到 setuptools issue 21

      编辑:添加到 python bugtracker 的链接。

      【讨论】:

      【解决方案11】:

      试试

      $ easy_install -m [PACKAGE]
      

      然后

      $ rm -rf .../python2.X/site-packages/[PACKAGE].egg
      

      【讨论】:

      【解决方案12】:

      要卸载.egg,您需要rm -rf egg(它可能是一个目录)并从site-packages/easy-install.pth 中删除匹配行

      【讨论】:

      • 较新的pip 包管理器包含卸载功能。
      • 我发现 pip 比卸载更好,因为 pip 从源安装。如果您像我一样拥有全新的 Win7 64 位,它将节省您的时间:)
      • 有些人被旧版本的 pip 卡住了,没有卸载选项,所以这个答案还是值得的。
      • 可能值得一提的是,这种方法可能会在系统上留下杂散的data_filesscripts(可能还有其他文件类别)。 egg 的EGG-INFO/SOURCES.txt 包含所有package 文件和sources 的列表,但不包含data_files,它们可以安装到系统上的任意目录中...
      • pip 并不总是删除 easy_install 安装的所有内容。 Here's a little experience 刚刚发生在我身上,pip 无法卸载我的一个模块。我必须从 site-packages/easy-install.pth 中删除匹配的行才能完全卸载它。
      【解决方案13】:

      如果问题对您来说已经够严重的烦恼,您可以考虑virtualenv。它允许您创建一个封装 python 库的环境。您在那里安装包,而不是在全局站点包目录中。您在该环境中运行的任何脚本都可以访问这些包(也可以选择访问您的全局包)。在评估我不确定我想要/需要全局安装的软件包时,我经常使用它。如果您决定不需要该软件包,只需将虚拟环境吹走就很容易了。它很容易使用。创建一个新环境:

      $>virtualenv /path/to/your/new/ENV
      

      virtual_envt 会在新环境中为你安装 setuptools,所以你可以这样做:

      $>ENV/bin/easy_install
      

      您甚至可以创建自己的 boostrap 脚本来设置您的新环境。因此,通过一个命令,您可以创建一个新的虚拟环境,例如默认安装 python 2.6、psycopg2 和 django(如果需要,您可以安装特定于环境的 python 版本)。

      【讨论】:

      • 什么是 $>?这是提示吗?也许更正为 $ 会更有帮助?谢谢
      猜你喜欢
      • 2012-12-07
      • 1970-01-01
      • 2011-09-29
      • 1970-01-01
      • 2012-11-27
      • 2013-11-01
      • 2012-05-19
      • 2017-11-21
      相关资源
      最近更新 更多