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

如何卸载?


当前回答

如果在重新安装包后仍然有应该删除的文件,请确保文件夹构建也被删除。因此,假设pkg是要删除的包:

rm -r $(python3 -c "import pkg; print(pkg.__path__[0] + '*' )") 
rm -rf build

为python3计算并删除包及其*。egg-info文件

其他回答

我曾经在过去的某个时候不小心在我的全局环境中运行了“python setup.py install”,卸载时遇到了很大的困难。这些解决方案并没有帮助。“pip uninstall”和“不能卸载'splunk-appinspect'”不搭。没有找到要卸载的文件。”“sudo pip uninstall”失败“无法卸载要求splunk-appinspect,未安装”。我尝试卸载pip,删除pip缓存,搜索我的硬盘驱动器的包,等等…

“pip show”最终引导我找到了解决方案,“Location:”指向一个目录,重命名该目录导致打包从pip的列表中删除。我重新命名了目录,它没有重新出现在pip的列表中,现在我可以在virtualenv中重新安装我的包。

现在python让你选择在安装过程中安装pip(我在Windows上,至少python在Windows上这样做!)。考虑到您在安装python时选择了安装pip(实际上不必选择,因为它是默认的),pip已经为您安装了。然后,在命令提示符中输入pip,您应该会看到出现帮助。你可以在那里找到必要的使用说明。例如,pip list显示了已安装包的列表。你可以使用

pip uninstall package_name

卸载你不再需要的软件包。在这里阅读更多(pip文档)。

使用bash读取命令来删除相关文件可能会更好,如下所示:

sudo python setup.py install --record files.txt
sudo bash -c "cat files.txt | xargs rm -rf"

我用python setup.py在conda环境下开发了一个开发鸡蛋链接,用pip uninstall <packagename>删除了鸡蛋链接。至少在这种情况下,卸载pip是一种方法。

注意:避免使用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'