ImportError: cannot import name 'Self' from 'typing' (E:\pycharm\py\lib\typing.py)
(base) (venv) PS F:\pyproject\17wanxiaoCheckin-master> pip install status
Traceback (most recent call last):
File "E:\pycharm\py\lib\runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\pycharm\py\lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
^^^^^^^^^^^^^^^^^^^^^^^
File "E:\pythonProject\venv\Scripts\pip.exe\__main__.py", line 7, in <module>
File "E:\pythonProject\venv\lib\site-packages\pip\_internal\cli\main.py", line 77, in main
command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\pythonProject\venv\lib\site-packages\pip\_internal\commands\__init__.py", line 119, in create_command
module = importlib.import_module(module_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\pycharm\py\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 897, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "E:\pythonProject\venv\lib\site-packages\pip\_internal\commands\install.py", line 20, in <module>
import pip._internal.self_outdated_check # noqa: F401
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\pythonProject\venv\lib\site-packages\pip\_internal\self_outdated_check.py", line 19, in <module>
from pip._internal.index.package_finder import PackageFinder
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\pythonProject\venv\lib\site-packages\pip\_internal\index\package_finder.py", line 41, in <module>
from pip._internal.req import InstallRequirement
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\pythonProject\venv\lib\site-packages\pip\_internal\req\__init__.py", line 6, in <module>
from pip._internal.cli.progress_bars import get_install_progress_renderer
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\pythonProject\venv\lib\site-packages\pip\_internal\cli\progress_bars.py", line 5, in <module>
from pip._vendor.rich.progress import (
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\pythonProject\venv\lib\site-packages\pip\_vendor\rich\progress.py", line 43, in <module>
from typing import Self
^^^^^^^^^^^^^^^^^^^^^^^
ImportError: cannot import name 'Self' from 'typing' (E:\pycharm\py\lib\typing.py)
无法, 删除环境,重新安装。
是由于你的 Python 版本 低于 3.11,而 pip 内部依赖的一个库(如 rich)使用了 Python 3.11 引入的新特性 typing.Self。
🔧 方法一:升级 Python 到 3.11 或更高版本(推荐)
这是最根本、最稳妥的解决办法。因为很多现代 Python 包已经逐渐开始依赖 Python 3.11 的新特性。
方法二:降级 pip(临时解决方案)
如果你暂时不能升级 Python,可以尝试降级 pip 到一个不使用 rich.progress 的版本(例如 pip 23.x):
不要rich不 完全可以不使用 rich,因为它是某些新版本 pip 中用来美化输出的一个依赖库。如果你当前使用的 Python 版本低于 3.11(例如 3.10 或更低),它会导致与 typing.Self 相关的兼容性错误。
✅ 解决方案:避免使用依赖 rich 的 pip 版本
你可以通过 降级 pip 到 23.x 来绕过这个问题,因为旧版本的 pip 并没有引入 rich 这个依赖。
🔧 步骤如下:
1. 升级 pip 自身(使用内置的 ensurepip 工具)
如果当前 pip 已经无法运行,可以使用 Python 自带的 ensurepip 来安装一个基础版本的 pip:
📌 额外建议(可选)
如果你想确认当前 pip 是否还依赖 rich,可以运行:
pip show rich
如果有输出,说明它还在环境中。你可以卸载它:
pip uninstall rich
不过,只要你不升级 pip 到 24.x 以上版本,就不用太担心这个问题。
删除解释器环境,重新添加
pip install flask-cors Fatal error in launcher: Unable to create process using
(base) (venv) PS F:\pyproject\17wanxiaoCheckin-master> pip install flask-cors Fatal error in launcher: Unable to create process using '"G:\pyproject\17wanxiaoCheckin-master\venv\Scripts\python.exe" "F:\pyproject\17wanxiaoCheckin-master\venv\Scripts\pip.exe" install flask-cors': ???????????
删除解释器环境,重新添加
Delete the interpreter environment and add it again
指定python版本 指定库版本 指定与python3.10对应的库版本
Specify the Python version, specify the library version, and specify the library version corresponding to Python 3.10