我已经用python setup.py install安装了一个python包。

如何卸载?


当前回答

我并没有完全回答这个问题,但我每天都在帮助我:

使用

pip install .

这将把包放在$HOME/.local中。卸载与

pip uninstall <package_name>

其他回答

我想你可以打开setup.py,找到包名,然后让pip卸载它。

假设名称在'METADATA'变量中可用:

pip uninstall $(python -c "from setup import METADATA; print METADATA['name']")

扩展Martin所说的内容,记录安装输出和一点bash脚本就可以很好地完成这个任务。我是这么做的…

for i in $(less install.record);
sudo rm $i;
done;

和很快。卸载。

{virtualenv}/lib/python2.7/site-packages/(如果不使用virtualenv,则使用{system_dir}/lib/python2.7/dist-packages/)

删除egg文件(例如distribute-0.6.34-py2.7.egg) 如果easy-install.pth文件中有任何文件,删除相应的行(它应该是源目录或egg文件的路径)。

从本地安装 Python setup.py安装

从本地卸载 PIP卸载mypackage

注意:避免使用python setup.py install使用pip install。

您需要手动删除所有文件,并撤消安装时手动执行的任何其他操作。

如果您不知道所有文件的列表,您可以使用——record选项重新安装它,并查看生成的列表。

要记录已安装文件的列表,您可以使用:

python setup.py install --record files.txt

一旦你想卸载,你可以使用xargs来删除:

xargs rm -rf < files.txt

或者如果你运行的是Windows,使用Powershell:

Get-Content files.txt | ForEach-Object {Remove-Item $_ -Recurse -Force}

然后在macOS上删除包含的目录,例如/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/my_module-0.1.egg/。它没有文件,但是Python仍然会导入一个空模块:

>>> import my_module
>>> my_module.__file__
None

一旦删除,Python会显示:

>>> import my_module
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'my_module'