代码之家  ›  专栏  ›  技术社区  ›  ire_and_curses

如何删除使用Python的easy_install安装的软件包?

  •  668
  • ire_and_curses  · 技术社区  · 15 年前

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

    找出已安装的软件包的最佳方法是什么?删除已安装软件包的首选方法是什么?如果我手动删除软件包(例如通过 rm /usr/local/lib/python2.6/dist-packages/my_installed_pkg.egg (或类似)?

    13 回复  |  直到 15 年前
        1
  •  621
  •   lunaryorn    9 年前

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

    installation instructions :

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

    然后你可以用 pip uninstall 要删除已安装的软件包,请执行以下操作: easy_install

        2
  •  191
  •   joeforker    15 年前

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

        3
  •  162
  •   Gray droiddeveloper    9 年前

    首先,您必须运行以下命令:

    $ easy_install -m [PACKAGE]
    

    它删除包的所有依赖项。

    $ sudo rm -rf /usr/local/lib/python2.X/site-packages/[PACKAGE].egg
    
        4
  •  55
  •   the Tin Man    11 年前

    二者都

    • 对于您的移除需要,请使用:

      pip uninstall <package>
      

      (安装时使用 easy_install pip )

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

      pip freeze
      

      yolk -l
      

      它可以输出更多的包详细信息。

      (通过安装 easy_install yolk pip install yolk )

        5
  •  28
  •   c089    14 年前

    several 网络上的源代码建议使用-m选项重新安装包,然后只删除lib/中的.egg文件和bin/中的二进制文件。此外,关于这个setuptools问题的讨论也可以在python bug tracker上找到,即setuptools issue 21 .

        6
  •  25
  •   mazelife    15 年前

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

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

    virtual_envt在新环境中为您安装setuptools,因此您可以执行以下操作:

    $>ENV/bin/easy_install
    

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

        7
  •  19
  •   gnat Nat Poor    8 年前

    官方指示: http://peak.telecommunity.com/DevCenter/EasyInstall#uninstalling-packages

    如果您已用另一个版本替换了一个包,则只需删除PackageName-versioninfo.egg文件或目录(位于安装目录中),即可删除不需要的包。

    如果要删除当前安装的软件包版本(或软件包的所有版本),应首先运行:

    easy_install -mxN PackageName
    

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

        8
  •  16
  •   Jim Geovedi    14 年前

    尝试

    $ easy_install -m [PACKAGE]
    

    $ rm -rf .../python2.X/site-packages/[PACKAGE].egg
    
        9
  •  7
  •   the Tin Man    11 年前

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

        10
  •  6
  •   the Tin Man    11 年前

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

    使用此线程中的信息,我得出以下结论:

    cat package_list | xargs -n1 sudo pip uninstall -y
    

    package_list 是从一个 pip freeze 以虚拟的方式。

    几乎

    yolk -l | cut -f 1 -d " " | grep -v "setuptools|pip|ETC.." | xargs -n1 pip uninstall -y
    
        11
  •  3
  •   the Tin Man    11 年前

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

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

    希望这有帮助。

        12
  •  3
  •   Snehal Parmar    10 年前

    仅限我删除此文件:easy-install.pth 已工作,剩余pip安装django==1.3.7

        13
  •  0
  •   Red Rooster    6 年前

    这对我有用。这与前面的答案类似,但到包的路径不同。

    1. sudorm-rf/Library/Python/2.7/site-packages/.egg

    平台:MacOS High Sierra版本10.13.3