我做了件非常愚蠢的事。我正在将一些自写包复制到python packages文件夹,然后决定将其中的一个重新删除,只需将cp
命令重写为rm
。现在dist-packages文件夹消失了。我现在该干啥?我是否可以从某个地方下载此文件夹的正常内容,或者是否需要完全重新安装python。如果是的话-有什么需要我小心的吗?
我删除的文件夹是/usr/local/lib/python2.7
,所以不是dpkg
和朋友维护的文件夹。
发布于 2016-01-12 10:38:07
我想您正在使用基于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包中。如果您不想这样做,可以将包复制到站点包中,而不是dist包,以便将它们与分发包分离开来。
发布于 2016-01-12 12:00:20
您删除的目录由pip
控制和维护。如果您有用pip
安装的软件包的记录,可以强制它重新安装它们。
如果不是的话,学着做备份已经太晚了;但这不一定是一次尝试--重新安装那些你知道丢失的东西,然后接受这样的事实:如果你忘记重新安装一个模块,或者因为你的代码出了问题,你永远不会知道你是否有错误。到目前为止,您将发现更多丢失的软件包,您第一次没有记住;只要重新安装,以及您发现它们。
顺便说一句,使用virtualenv
听起来是一种很好的解决方案,可以避免您需要在安装系统Python时遇到麻烦。
发布于 2020-11-15 21:37:54
您可以获得由pip
和pip 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
重新安装每个包。同样的事情也发生在我身上,这个解决方案并没有完全成功(一些软件包由于某些原因未能安装),但它可能对您有效,或者至少使您走上了正确的道路。(我意识到这篇文章很晚了,但这是给那些将来遇到这种不幸的人准备的。)
https://stackoverflow.com/questions/34740756
复制相似问题