(V2)How to uninstall a python package with `python setup.py install`

(V2)How to uninstall a python package with python setup.py install

UpDate 2018-08-18 1534589048

Author unnamed

Mail [email protected]

Tip Please feel free to contact me via mail above for any confusion or suggestions

INTRODUCTION

本文是How to uninstall a python package with python setup.py install这篇文章的改动版,包含了上篇文章的所有内容,不用再去找上一篇文章了。上一篇文章我提到的是一种手动的删除方法,本文在那篇文章的基础上新增一种自动删除的方法pip uninstall package,亲测urllib3和numpy-1.14.5可行。之所以会新推出这么一种方法是因为,在写上篇文章的时候我还没有安装pip,是的,pip。因为这台服务器一直处于断网的状态,无法联网安装pip,但后来研究出在无网络的情况下安装pip,于是就发现了用pip来进行setup.py包的卸载。对无网络情况下安装pip感兴趣的小伙伴可以在我的博客里找How to install pip without network

[上篇内容]python包的安装可以有多种方式,其中一种为python setup.py install。但使用这种安装方法之后,卸载较之其他方法就有点麻烦了。且看下文(适用方案为Linux)。感兴趣的也可以参考原始答案:python setup.py uninstall

METHOD[上篇内容]

如果我们使用了python setup.py install来安装的话,它会生成一系列的文件,如果我们需要卸载的话,只能通过将这些生成的文件清理清楚就可以了。但问题在于我们怎么知道安装过程都生成了哪些文件呢?这就需要我们在最初安装的时候使用参数--record来实现。例如:

python setup.py install --record install_file_location.txt

这样你就把安装过程产生的文件位置信息记录在文件install_file_location.txt中了。当你想要进行卸载的时候只需要执行下面这条命令即可:

cat install_file_location.txt | xargs rm -rf

如果我们事先已经安装过了怎么办?那就使用python setup.py install --record install_file_location.txt对要卸载的包重新安装,然后再进行卸载。

METHOD[本篇内容]

以urllib3为例:

其实我们打开我们的install_file_location.txt会发现,它所有的新增的文件位置都在/usr/lib64/python.7/site-packages/urllib3-1.23-py2.7.egg/下,而如果我们使用pip uninstall urllib3来进行包的卸载的时候,它提示我们的信息,其实就是将这个文件夹下的所有内容清楚,所以,该命令就是将我们install_file_location.txt中的内容全部清除干净了。内部原理其实都是一致的!

而针对numpy-1.14.5来说,它的install_file_location.txt中包含了其他路径的文件,比如/usr/bin/f2py,但同样的,pip uninstall numpy也会将/usr/bin/f2py中的内容也删除干净。

你可能感兴趣的:((V2)How to uninstall a python package with `python setup.py install`)