从调用“setup.py install”的源文件夹调用“pip uninstall”

Calling `pip uninstall` from the source folder where `setup.py install` was called

如果我克隆一个使用 setuptools 的存储库,我可以使用 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 现已弃用,推荐的安装 Python 项目的方法是通过 pip。

  3. 永远不要直接调用 pip 脚本,而应该始终更喜欢使用目标 Python 明确调用 pip 可执行模块] 解释器(详见 this reference article and 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