意外删除了dist-packages文件夹,现在该怎么办?

时间:2016-01-12 10:10:47

标签: python debian uninstall reinstall

我做了一些非常愚蠢的事。我正在将一些自编写的包复制到python dist-packages文件夹,然后通过将cp命令重写为rm来决定再次删除其中一个。现在dist-packages文件夹已经消失了。现在我该怎么做?我可以从某个地方下载此文件夹的正常内容,还是需要完全重新安装python。如果是的话 - 有什么我需要注意的吗?

我删除的文件夹是/usr/local/lib/python2.7,而不是由dpkg和朋友维护的文件夹。

3 个答案:

答案 0 :(得分:5)

我猜您使用的是基于debian的发行版(ubuntu或类似版本)。 如果是这样,您必须重新安装所有python包。 你应该可以通过调用“自动”来获得大部分内容:

 sudo dpkg --get-selections | grep -E "^python" | grep install | cut -f1 | xargs apt-get --reinstall -y install

希望这会有所帮助。 如果您想查看将重新安装的软件包,只需调用管道命令的第一部分:

sudo dpkg --get-selections | grep -E "^python"

最后,您应该考虑使用virtualenv或anaconda,而不是将自己的软件包安装或复制到dist-packages。如果您不希望这样,您可以将软件包复制到site-packages而不是dist-packages,以便将它们与分发软件包分开。

答案 1 :(得分:2)

您删除的目录由pip控制和维护。如果您有使用pip安装了哪些软件包的记录,则可以强制它再次重新安装。

如果没有,为时不能学习备份;但这不一定是一次尝试 - 重新安装你知道丢失的那些,然后忍受这样一个事实:你永远不会知道你是否因为忘记重新安装模块而得到错误,或者是因为某些事情您的代码有问题。你会发现一些你第一次没记得的错过的包裹;只是重新安装它们以及发现它们。

顺便说一下,使用virtualenv听起来像是一个出色的解决方案,可以避免您需要使用系统Python安装的情况。

答案 2 :(得分:0)

您可以获得pippip list安装的软件包的列表。然后您可以运行类似

pip list | tail -n+3 | cut -d' ' -f1 | xargs sudo pip install --force-reinstall

其中

  • pip list给出了已安装软件包的列表(已在数据库中注册),
  • tail -n+3跳过输出的前两行,它们只是一个标题,
  • cut -d' ' -f1从每一行中删除软件包版本,并且
  • xargs sudo pip install --force-reinstall重新安装每个软件包。

同样的事情发生在我身上,这个解决方案并未完全解决(由于某些原因某些软件包无法安装),但它可能对您有用,或者至少使您走上了正确的道路。 (我知道这篇文章太晚了,但这是给将来遇到这种不幸的人们的。)

相关问题