Bel*_*med 1 python module pip typing
我想在我的电脑上安装 pygame 当我输入pip
cmd 我收到这个错误:
File "C:\Python34\Scripts\pip3-script.py", line 9, in <module>
load_entry_point('pip==21.1', 'console_scripts', 'pip3')()
File "C:\Python34\lib\site-packages\setuptools-18.1-py3.4.egg\pkg_resources\__
init__.py", line 558, in load_entry_point
File "C:\Python34\lib\site-packages\setuptools-18.1-py3.4.egg\pkg_resources\__
init__.py", line 2682, in load_entry_point
File "C:\Python34\lib\site-packages\setuptools-18.1-py3.4.egg\pkg_resources\__
init__.py", line 2355, in load
File "C:\Python34\lib\site-packages\setuptools-18.1-py3.4.egg\pkg_resources\__
init__.py", line 2361, in resolve
File "C:\Users\user\AppData\Roaming\Python\Python34\site-packages\pip\__init__
.py", line 1, in <module>
from typing import List, Optional
ImportError: No module named 'typing'
Run Code Online (Sandbox Code Playgroud)
小智 7
如果您不小心升级了 pip,很遗憾,由于 pip 损坏,您将无法使用 pip 恢复以前的版本。
如果您使用的是像 Centos 这样的 Linux,您也许可以使用以下命令重新安装 pip:
yum reinstall -y python2-pip.noarch python27-python-pip.noarch
Run Code Online (Sandbox Code Playgroud)
但是由于您使用的是 Windows,也许可以尝试使用https://bootstrap.pypa.io/get-pip.py重新安装 pip并指定您想要的 pip 版本:
https://bootstrap.pypa.io/get-pip.py
Run Code Online (Sandbox Code Playgroud)
pip 本身失败,因为它尝试导入输入并且未安装输入。所以你不能运行 pip install 来解决这个问题。
TLDR;1. 使用 dpkg 或 yum 安装打字(但这可能无法解决 pip 损坏的问题。
TLDR;2.我认为是python2.7/python3.x版本问题,可能只是使用python3。
在 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.
Run Code Online (Sandbox Code Playgroud)
我有点愚蠢地rhan那个命令。
当心,不要总是按照建议升级!
在 pip upgrade pip 被破坏之后:
$ pip install httpserver
Traceback (most recent call last):
File "/bin/pip2", line 7, in <module>
from pip._internal.cli.main import main
File "/usr/lib/python2.7/site-packages/pip/__init__.py", line 1, in <module>
from typing import List, Optional
ImportError: No module named typing
Run Code Online (Sandbox Code Playgroud)
因此,我们可以尝试以其他方式安装 python 模块,例如通过包管理器。
yum install python-typing
Run Code Online (Sandbox Code Playgroud)
安装正常,但是如果运行 pip 会出现另一个错误。
pip install httpserver
Traceback (most recent call last):
File "/bin/pip", line 7, in <module>
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
Run Code Online (Sandbox Code Playgroud)
所以,真正的问题可能是一些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
Run Code Online (Sandbox Code Playgroud)
Python 3 现在已安装并运行,python 3 的 pip3 正在运行。
在这个用于 python2.7 的普通旧 pip 仍然损坏之后。
建议的解决方案留给其他人/未来的练习: 也许我们可以通过完全卸载 pip 并再次安装旧版本来修复。如果您发现如何修复糟糕的 pip,请编辑/更新答案或添加您自己的答案。
归档时间: |
|
查看次数: |
10285 次 |
最近记录: |