繁体   English   中英

ImportError:没有名为类型的模块

[英]ImportError: No module named typing

我正在尝试创建一个python2 virtualenv ,所以我尝试pip install virtualenv并获取

Traceback (most recent call last):
  File "/usr/local/bin/pip", line 11, in <module>
    load_entry_point('pip==21.1.1', 'console_scripts', 'pip')()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 489, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 2843, in load_entry_point
    return ep.load()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 2434, in load
    return self.resolve()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 2440, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/Library/Python/2.7/site-packages/pip-21.1.1-py2.7.egg/pip/__init__.py", line 1, in <module>
    from typing import List, Optional
ImportError: No module named typing

我在pip install typing时遇到几乎相同的错误

 Traceback (most recent call last): File "/usr/local/bin/pip", line 11, in <module> load_entry_point('pip==21.1.1', 'console_scripts', 'pip')() File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 489, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 2843, in load_entry_point return ep.load() File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 2434, in load return self.resolve() File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 2440, in resolve module = __import__(self.module_name, fromlist=['__name__'], level=0) File "/Library/Python/2.7/site-packages/pip-21.1.1-py2.7.egg/pip/__init__.py", line 1, in <module> from typing import List, Optional ImportError: No module named typing

很多解决方案都建议使用 python3,但我特别想创建一个 python 2 虚拟环境


我在 2018 Intel i3 Mac Mini 上运行 MacOS Big Sur

Python 2 已达到使用寿命 (EOL)。 因此,在版本 21 中,从pip中删除了对 Python 2 的支持。您需要将pip降级到版本 20。


我试过这个(在 shell 命令行中):

# downgrade pip to 20.3.4
pip install --user pip==20.3.4
# better: 'pip<21', but it must be quoted!

# install virtualenv if not installed already
pip install --user virtualenv

# create a new venv for old python
virtualenv -p /usr/bin/python2.7 /tmp/venv27

# update pip back to the recent version
pip install --user --upgrade pip

现在, pip --version显示版本 21,但在激活的环境中有版本 20:

sh-5.0$ pip --version
pip 21.1.1 from /home/vpfb/.local/lib/python3.9/site-packages/pip (python 3.9)

sh-5.0$ pwd
/tmp/venv27/bin

sh-5.0$ source ./activate

(venv27) sh-5.0$ pip --version
pip 20.3.4 from /tmp/venv27/lib/python2.7/site-packages/pip (python 2.7)

我尝试在venv中安装一个随机的package,它成功了。

恐怕您将不得不使用另一个版本。 我知道您经常听到这个问题,但 python 2.7 不再受支持(自 2021 年 1 月 1 日起),这就是它可能显示错误的原因。

typing

3.5 版中的新功能。

因此, import typingpython2.7中导致失败也就不足为奇了。 因此,如果您发现使用import typing的项目对于 python 至少为 3.5,或者使用与内置模块不同的typing 如果您知道想要 python2 生命周期结束的后果,请阅读Sunsetting Python 2 如果你有旧版 python2,你可以尝试移植到 python3

pip 在版本 21 中停止支持 Python 2 您需要为 Python 2 安装旧版本的 pip。

打字模块仅对 python 3.5 及以上版本有效。

https://pypi.org/project/typing/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM