从调用`setup.py install`的源文件夹中调用`pip uninstall`

问题描述

如果我克隆使用setuptools的Repos,则可以使用python3 setup.py install --user安装它。

例如:

git clone https://github.com/pybliometrics-dev/pybliometrics
cd pybliometrics
python3 setup.py install --user

但是,我不能再通过pip卸载它。事实上:

$ pip3 uninstall pybliometrics
Found existing installation: pybliometrics 3.2.1.dev2
Can't uninstall 'pybliometrics'. No files were found to uninstall.
我必须更改目录才能成功执行卸载命令。如果要重新安装,请将目录切换回原来的目录。

为什么?

如何从用于安装它的同一文件夹中卸载?

以下是评论中询问的pip show的输出:

$ pip show -f pybliometrics
Name: pybliometrics
Version: 3.2.1.dev2
Summary: Python-based API-Wrapper to access Scopus
Home-page: https://pybliometrics.readthedocs.io/en/stable/
Author: 'John Kitchin and Michael E. Rose
Author-email: Michael.Ernst.Rose@gmail.com
License: MIT
Location: /run/media/MYNAME/MYID/data/progetti_miei/pybliometrics
Requires: pbr, requests, simplejson, tqdm
Required-by: 
Files:
Cannot locate RECORD or installed-files.txt

解决方案

pip show -f pybliometrics命令的输出中,我们可以看到:

Files:
Cannot locate RECORD or installed-files.txt

这可能解释了无法卸载它的原因。我不确定这是如何发生的,也不知道如何修复它。

但话虽如此,以下是一些注意事项:

  1. 您的问题中显示的命令不一致。一方面调用pip show -f pybliometrics,另一方面调用pip3 uninstall pybliometrics。但是pippip3不一定是一回事,也不一定与相同的项目交互。

  2. 请勿使用python setup.py install。现在不建议调用setup.py,建议通过pip安装Python项目。

  3. 永远不应直接调用pip脚本,而应始终倾向于使用目标Python解释器显式调用pip可执行模块(有关详细信息,请参阅this reference article和this other answer)。

因此,在您的情况下,您可能应该做什么(不能保证它会解决您的问题,但会将风险降至最低):

  • 清楚地确定您要使用的是哪个Python解释器,假设它是path/to/bin/pythonX.Y
  • 安装项目的方式:path/to/bin/pythonX.Y -m pip install --user path/to/pybliometrics
  • 使用path/to/bin/pythonX.Y -m pip show -f pybliometrics检查已安装的项目
  • 卸载项目:path/to/bin/pythonX.Y -m pip uninstall pybliometrics

相关文章