我将首先列出受其管理的Python软件包apt-get
(以下代码需要几秒钟才能运行,请耐心等待):
$ 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安装目录的内容,该目录按上次修改日期排序,使查找自己安装的软件包更加容易。例如,我安装了Google的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)。