首页 > 解决方案 > python pip损坏,无法修复或卸载

问题描述

由于稍后描述的一系列事件,每当我尝试使用 pip 执行任何操作时,我都会在命令提示符中收到以下错误。

(venv) (base) C:\Users\Mark Kortink\Dropbox\Python\projects\metapplica>pip install flask
Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\ProgramData\Anaconda3\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\MARKKO~1\Dropbox\Python\projects\METAPP~1\venv\Scripts\pip.exe\__main__.py", line 9, in <module>
  File "c:\users\markko~1\dropbox\python\projects\metapp~1\venv\lib\site-packages\pip\_internal\main.py", line 45, in main
    command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
  File "c:\users\markko~1\dropbox\python\projects\metapp~1\venv\lib\site-packages\pip\_internal\commands\__init__.py", line 96, in create_command
    module = importlib.import_module(module_path)
  File "C:\ProgramData\Anaconda3\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "c:\users\markko~1\dropbox\python\projects\metapp~1\venv\lib\site-packages\pip\_internal\commands\install.py", line 23, in <module>
    from pip._internal.cli.req_command import RequirementCommand
  File "c:\users\markko~1\dropbox\python\projects\metapp~1\venv\lib\site-packages\pip\_internal\cli\req_command.py", line 17, in <module>
    from pip._internal.index import PackageFinder
ImportError: cannot import name 'PackageFinder' from 'pip._internal.index' (c:\users\markko~1\dropbox\python\projects\metapp~1\venv\lib\site-packages\pip\_internal\index\__init__.py)

所有情况都在我的另一个问题中进行了描述,但没有得到有用的答案。它在这里ModuleNotFoundError

我简而言之:-

  1. 我在 Flask 中有一个在 Anaconda 环境中运行的工作应用程序,它使用 pip(不是 conda)安装了所有东西,它使用了 flask-bootstrap。
  2. 我卸载了flask-bootstrap并安装了一个不同的包Bootsrap-flask来获取bootstrap-4,它可以工作。
  3. 我卸载了 Bootstrap-flask,因为我决定使用纯 CSS。
  4. 我仍然可以使用“flask run”从 Anaconda 环境中的 venv 运行我的应用程序。
  5. 但是,一旦我尝试在调试器(Spyder 或 VSCode)中运行任何与烧瓶相关的东西,我就会发现无法找到核心 Flask 库。
  6. 一旦我用 pip 做任何事情,我就会得到上述错误。

我相信上面的所有细节都会分散注意力,我已经将其包含在内以保持完整性,并且在我的另一个链接问题中有所涉及。我相信从上面的命令提示符读出的根本原因应该是显而易见的。尤其是ImportError: cannot import name 'PackageFinder' from 'pip._internal.index'

任何人都可以提出任何建议。如果不是,我如何安全干净地删除我的 Flask venv 环境并重新安装它而不会丢失任何东西。

谢谢

标签: pythonpipconda

解决方案


为了记录,这就是我最终做的事情。

  1. 已卸载 Anaconda。
  2. 切换到 Flask 应用目录并停用然后删除 venv。
  3. 安装了最新版本的 Python。
  4. 安装了virtualenv。
  5. 切换到 Flask app 目录并创建并激活一个新的 venv。
  6. 用 pip 一个一个地安装 Flask 和所有其他的零碎。
  7. 安装了 WinPython 应用程序(不再是 Anaconda)。
  8. 对 WinPython 非常满意,它自然而简单,而不是像 Anaconda 那样固执和复杂(想想 Flask 与 Django)。
  9. Spyder 工作,但旧版本。
  10. 使用 pip 以 WinPython 方式升级了 Spyder,它起作用了。

Flask 应用程序可以运行,并且在运行 pip 时不会出现错误。我回到了我最初的“缺少模块”问题,但现在我了解了环境是如何设置的,我想我可以解决这个问题。当我这样做时,将发布该问题的答案。


推荐阅读