为何pip安装pie包后,Python仍残留已移除的文件?
安装pie包时因残留历史文件导致失败的问题
执行以下命令安装pie包时失败:
pip install --break-system-packages --user git+https://github.com/zurgeg/pie.git@ed00801
报错栈如下:
Traceback (most recent call last): File "/home/jg/.local/bin/pie", line 5, in <module> from pie.pie import cli File "/home/jg/.local/lib/python3.11/site-packages/pie/pie.py", line 20, in <module> from .crusts.notdate.play.playdate_pie import playdate as crust_playdate File "/home/jg/.local/lib/python3.11/site-packages/pie/crusts/__init__.py", line 7, in <module> globals()[submodule] = _import_module("." + submodule, __name__) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/jg/.local/lib/python3.11/site-packages/pie/crusts/notdate/__init__.py", line 5, in <module> if not submodule.startswith("_"):
问题文件的历史背景
报错涉及的pie/crusts/notdate/__init__.py曾存在于仓库中,可通过以下git命令查看其历史提交记录:
git -P log --all --full-history --no-color -- src/pie/crusts/notdate/__init__.py | awk 'match($0, /commit/){ print substr($0, RSTART + 7, 7) }'
输出结果:
aaef1b9 33210c5 bd3ded3
该文件是从原位置移动到当前路径的,提交aaef1b9的diff片段显示:
git diff aaef1b9 aaef1b9~1
diff --git a/src/pie/crusts/__init__.py b/src/pie/crusts/notdate/__init__.py similarity index 58% rename from src/pie/crusts/__init__.py rename to src/pie/crusts/notdate/__init__.py [...]
已尝试的无效操作
- 删除该文件后重新安装,问题依旧
- 执行
pip uninstall pie后再安装,Python仍认为该文件存在 - 手动
rm删除仅为临时方案,重新创建文件再删除后问题重复 - 升级包版本到0.2.2无效
- 使用虚拟环境或系统安装时,以下命令均无法解决:
pip install --no-cache-dirpip install --forcepip install --force --no-cache-dir
核心疑问
期望重新安装包时该残留文件能被自动删除,但看起来pip未将其纳入包追踪范围,如何解决?
内容的提问来源于stack exchange,提问作者zurgeg
相关产品推荐
相关产品推荐

