【问题标题】:Calling `pip uninstall` from the source folder where `setup.py install` was called从调用 `setup.py install` 的源文件夹中调用 `pip uninstall`
【发布时间】:2022-01-19 19:24:58
【问题描述】:

如果我克隆一个使用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 XXX 的输出添加到问题中?
  • 可能是本地目录中的 egg 信息阻止 pip 看到已安装的包 - 尝试从项目目录中删除 XXX.egg-info 目录,然后再次尝试卸载。
  • @hoefling 我添加了pip show的输出
  • @hoefling 项目目录中没有egg-info
  • Cannot locate RECORD or installed-files.txt 似乎说明了为什么无法卸载。对于安装,您应该使用 python -m pip install --user . 而不是 python setup.py install --user。

标签: python pip package setuptools uninstallation


【解决方案1】:

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

Files:
Cannot locate RECORD or installed-files.txt

这或许可以解释为什么它无法卸载。而且我不确定这是怎么发生的,也不知道如何解决。

话虽如此,这里有一些注意事项:

  1. 您的问题中显示的命令不一致。一方面你打电话给pip show -f pybliometrics,另一方面你打电话给pip3 uninstall pybliometrics。但是pip和pip3不一定是同一个东西,也不一定和同一个项目交互。

  2. 不要使用python setup.py install。现在不推荐调用setup.py,推荐的安装 Python 项目的方法是通过 pip。

  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

【讨论】:

  • 就是这样。我必须使用path/to/bin/pythonX.Y -m pip install --user path/to/pybliometrics 安装。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-07
  • 2019-06-14
  • 2016-08-06
  • 1970-01-01
  • 2012-07-24
  • 2022-01-25
相关资源
最近更新 更多