将Python安装还原为默认加上apt包依赖项
我使用Python安装(2和3)玩了很多,并安装了一堆软件包,其中一些使用apt-get
,但大多数使用pip
。 我还使用pip
将许多apt
-installed软件包升级到更新版本。
我的问题是:
如何撤消所有这些更改,删除所有pip
installed的Python包,只保留默认存储库版本的默认预装包集,以及apt-get
安装的那些,但仅作为其他软件的依赖,始终降级到存储库版本,如有必要。
我希望这样做可以为系统提供一个整洁的Python环境,并且只对virtualenvs进行修改。
没有重新安装系统可能吗? 我该如何接近它?
我首先列出由apt-get
管理的Python包(下面的一行需要几秒钟才能运行,请耐心等待):
$ for pyfile in `ls /usr/lib/python2.7/dist-packages`; do dpkg -S "/usr/lib/python2.7/dist-packages/${pyfile}" | sed 's/:.*//g'; done | sort -u
注意:如有必要,请将2.7替换为您感兴趣的任何python版本。
接下来,卸载手动安装的软件包。 如果您不确定安装了哪些软件包,可以使用以下命令手动安装所有软件包的列表(请参阅此问题 ):
$ comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)
然后卸载手动安装的Python包,例如:
$ sudo apt-get remove python-tk python-scipy
接下来,您想知道使用pip安装了哪些软件包:
$ ls -ltd /usr/local/lib/python2.7/dist-packages/*
此命令列出按上次修改日期排序的pip安装目录的内容,以便更容易找到您自己安装的软件包。 例如,我安装了谷歌的gcloud
工具,它安装了一堆我不想卸载的pip包,但通过列表可以很容易地看到它们都是在同一时间安装的,所以我知道哪些是我的应该离开,我可以卸载哪些。 在卸载任何pip包之前,您应该拍摄已安装的软件包列表的快照:
$ sudo pip freeze > $HOME/pip_freeze_snapshot.txt
然后只需卸载所需的软件包,例如:
$ sudo pip uninstall py pytest
最后,不要忘记您的用户目录中可能已安装了一些pip包。 也许你很好,但如果没有,你可以列出它们:
$ ls -ltd $HOME/.local/lib/python2.7/site-packages/*
如果你想摆脱所有这些包,你可以删除这个目录。 否则,只需卸载单个软件包,例如:
$ pip uninstall tensorflow
不要忘记检查其他python版本(例如,3.5)。
- 如何在最小的CLI安装上安装Cinnamon?
- 如何validationUbuntu更新的真实性?
- 无法删除JDK – / usr / sbin / alternatives:没有这样的文件或目录
- apt-get install libqt4在哪里?
- 模式丢失 – Unity Tweak Tool
- 使用未知选项删除损坏的PPA包
- 运行“apt-get remove dependencies-names”后,“dpkg -l”中仍然存在依赖关系
- 在Retrograde中安装Ubuntu 16.04 MariaDB 10.1:D
- E:无法获取一些档案,可能运行apt-get update或尝试使用–fix-missing?