python - 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。
我简而言之:-
- 我在 Flask 中有一个在 Anaconda 环境中运行的工作应用程序,它使用 pip(不是 conda)安装了所有东西,它使用了 flask-bootstrap。
- 我卸载了flask-bootstrap并安装了一个不同的包Bootsrap-flask来获取bootstrap-4,它可以工作。
- 我卸载了 Bootstrap-flask,因为我决定使用纯 CSS。
- 我仍然可以使用“flask run”从 Anaconda 环境中的 venv 运行我的应用程序。
- 但是,一旦我尝试在调试器(Spyder 或 VSCode)中运行任何与烧瓶相关的东西,我就会发现无法找到核心 Flask 库。
- 一旦我用 pip 做任何事情,我就会得到上述错误。
我相信上面的所有细节都会分散注意力,我已经将其包含在内以保持完整性,并且在我的另一个链接问题中有所涉及。我相信从上面的命令提示符读出的根本原因应该是显而易见的。尤其是ImportError: cannot import name 'PackageFinder' from 'pip._internal.index'
任何人都可以提出任何建议。如果不是,我如何安全干净地删除我的 Flask venv 环境并重新安装它而不会丢失任何东西。
谢谢
解决方案
为了记录,这就是我最终做的事情。
- 已卸载 Anaconda。
- 切换到 Flask 应用目录并停用然后删除 venv。
- 安装了最新版本的 Python。
- 安装了virtualenv。
- 切换到 Flask app 目录并创建并激活一个新的 venv。
- 用 pip 一个一个地安装 Flask 和所有其他的零碎。
- 安装了 WinPython 应用程序(不再是 Anaconda)。
- 对 WinPython 非常满意,它自然而简单,而不是像 Anaconda 那样固执和复杂(想想 Flask 与 Django)。
- Spyder 工作,但旧版本。
- 使用 pip 以 WinPython 方式升级了 Spyder,它起作用了。
Flask 应用程序可以运行,并且在运行 pip 时不会出现错误。我回到了我最初的“缺少模块”问题,但现在我了解了环境是如何设置的,我想我可以解决这个问题。当我这样做时,将发布该问题的答案。
推荐阅读
- javascript - VueJS 食谱中关于 Vue 自定义“滚动”指令的快速 Javascript 问题
- android - 无法从 Visual Studio Code 运行新创建的 React Native 项目
- javascript - 为什么只调用一次源?
- sql - 使用同一表 SQL 中的数据更新行
- javascript - 如何在 Angular Universal 中使用 stencilJs Web 组件
- windows - 如何在 Windows 10 中关联 cgi 扩展
- python - 在 cython 中获取随机布尔字符串
- python - 为什么我的 python 函数在使用 Pool apply_async 时将字符串参数视为列表/数组?
- html - 如何将框阴影转换为过滤器阴影?
- bash - 用 while 循环中的值更新 var