pip安装时出现No module named typing

在 pip 升级后,我在 centos 7.9 上发生了类似的问题(同样无法导入输入模块错误)。一段时间后通过移动使用python3为我解决了。

pip 建议:

You are using pip version 8.1.2, however version 21.1.1 is available.
You should consider upgrading via the ‘pip install --upgrade pip’ command.
我有点愚蠢地rhan那个命令。

当心,不要总是按照建议升级!

在 pip upgrade pip 被破坏之后:

$ pip install httpserver
Traceback (most recent call last):
File “/bin/pip2”, line 7, in
from pip._internal.cli.main import main
File “/usr/lib/python2.7/site-packages/pip/init.py”, line 1, in
from typing import List, Optional
ImportError: No module named typing
因此,我们可以尝试以其他方式安装 python 模块,例如通过包管理器。

yum install python-typing
安装正常但是如果运行 pip 会出现另一个错误。

pip install httpserver
Traceback (most recent call last):
File “/bin/pip”, line 7, in
from pip._internal.cli.main import main
File “/usr/lib/python2.7/site-packages/pip/_internal/cli/main.py”, line 58
sys.stderr.write(f"ERROR: {exc}")
^
SyntaxError: invalid syntax
所以,真正的问题可能是一些python包升级到了python3。?语法和 pip 正在运行 python2,某种版本不匹配。

所以…好吧,解决方案会有所不同。

就我而言,我发现 http.server 是一个仅限 python3 的对象。python2.7 是这个盒子上唯一安装的 python。我想运行的脚本需要 python3。

因此,问题的解决方法是仅使用 python3:

check python/pip related packages yum installed:

rpm -qa |grep -E “python|pip”

install python 3

yum install python3

now pip3 works, install some libs

pip3 install chevron uuid requests
Python 3 现在已安装并运行,python 3 的 pip3 正在运行。

在这个用于 python2.7 的普通旧 pip 仍然损坏之后。

建议的解决方案留给其他人/未来的练习: 也许我们可以通过完全卸载 pip 并再次安装旧版本来修复。如果您发现如何修复糟糕的 pip,请编辑/更新答案或添加您自己的答案

你可能感兴趣的:(python,python,flask)