【问题标题】:Uninstall all Python packages installed by me and their dependencies, without nuking my Mac卸载我安装的所有 Python 包及其依赖项,而无需对我的 Mac 进行核对
【发布时间】:2017-04-22 09:41:42
【问题描述】:

有很多问题,但正确的方法似乎是手动卸载您不需要的所有内容。 pip doesn't uninstall the dependencies of a package on uninstall 并且 pip-autoremove 报告已损坏。这是我的点子冻结:

altgraph==0.10.2
backports-abc==0.5
bdist-mpkg==0.5.0
bonjour-py==0.3
certifi==2016.9.26
dask==0.12.0
macholib==1.5.1
matplotlib==1.3.1
modulegraph==0.10.4
nose==1.3.7
numpy==1.8.0rc1
Pillow==3.4.2
py2app==0.7.3
pyobjc-core==2.5.1
pyobjc-framework-Accounts==2.5.1
pyobjc-framework-AddressBook==2.5.1
pyobjc-framework-AppleScriptKit==2.5.1
pyobjc-framework-AppleScriptObjC==2.5.1
pyobjc-framework-Automator==2.5.1
pyobjc-framework-CFNetwork==2.5.1
pyobjc-framework-Cocoa==2.5.1
pyobjc-framework-Collaboration==2.5.1
pyobjc-framework-CoreData==2.5.1
pyobjc-framework-CoreLocation==2.5.1
pyobjc-framework-CoreText==2.5.1
pyobjc-framework-DictionaryServices==2.5.1
pyobjc-framework-EventKit==2.5.1
pyobjc-framework-ExceptionHandling==2.5.1
pyobjc-framework-FSEvents==2.5.1
pyobjc-framework-InputMethodKit==2.5.1
pyobjc-framework-InstallerPlugins==2.5.1
pyobjc-framework-InstantMessage==2.5.1
pyobjc-framework-LatentSemanticMapping==2.5.1
pyobjc-framework-LaunchServices==2.5.1
pyobjc-framework-Message==2.5.1
pyobjc-framework-OpenDirectory==2.5.1
pyobjc-framework-PreferencePanes==2.5.1
pyobjc-framework-PubSub==2.5.1
pyobjc-framework-QTKit==2.5.1
pyobjc-framework-Quartz==2.5.1
pyobjc-framework-ScreenSaver==2.5.1
pyobjc-framework-ScriptingBridge==2.5.1
pyobjc-framework-SearchKit==2.5.1
pyobjc-framework-ServiceManagement==2.5.1
pyobjc-framework-Social==2.5.1
pyobjc-framework-SyncServices==2.5.1
pyobjc-framework-SystemConfiguration==2.5.1
pyobjc-framework-WebKit==2.5.1
pyOpenSSL==0.13.1
pyparsing==2.0.1
python-dateutil==1.5
pytz==2013.7
scipy==0.18.1
singledispatch==3.4.0.3
six==1.4.1
toolz==0.8.1
tornado==4.4.2
xattr==0.6.4
zope.interface==4.1.1

如何知道我安装了哪些包?可能有日期条目吗?因为我上周才对 Python 产生了兴趣。我不想卸载任何会迫使我重新安装 Mac OS 的东西。

【问题讨论】:

  • 我不认为你可以知道你安装了哪些包,但你可以知道每个包的依赖关系:pip show PACKAGE | grep 'Requires'
  • SerialDev no. @Pawamoy 几乎是一回事,因为我可以看到从我的代码中导入了哪些包。我应该删除问题,还是您可以发布答案?
  • 由于权限(和系统完整性保护)的原因,您甚至无法卸载系统提供的软件包,因此尝试全部尝试可能没问题。但是,您也可以通过查看它们的安装位置来做到这一点,您可以使用pip show 来做到这一点。如果它在您的用户目录中,那就是您安装的东西(但详细信息取决于您使用的 python)。
  • @AndrewJaffe 所说的很有道理,即使 sudo 在我的一些尝试中有时也会失败。

标签: python macos pip packages uninstallation


【解决方案1】:

因此,如果您需要查找包的依赖项,只需运行pip show PACKAGE | grep 'Requires'。不过,您必须知道自己安装了哪个包,并且必须小心,因为依赖项可能会与其他“系统”包共享。

【讨论】:

  • 嗯,例如我得到:pip show matplotlib | grep 'Requires' Requires: numpy, python-dateutil, tornado, pyparsing, nose。我应该对每个依赖项都执行pip uninstall matplotlib 吗?你说的系统共享吓到我了!!
  • 我的意思是默认安装了一些包,像six这样的包被其他人广泛使用(为了python版本之间的兼容性),所以你不想卸载six从你的系统。也许您可以列出每个软件包的每个 dep,并仅卸载仅属于您安装的软件包的 dep。
  • 该死的,scikit-image 正在尝试卸载六个,这就是它失败的原因吗?
  • 也许 scikit-image 需要另一个版本的 6,但我认为它的安装失败,因为您试图在系统范围内安装它(需要管理员权限)。正如帖子中所回答的那样,virtualenv 可以成为解决方案,因为在虚拟 env 中安装包不需要管理员权限。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-08
  • 1970-01-01
  • 2019-11-02
  • 2011-11-11
  • 2018-11-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多