简体   繁体   English

ImportError:没有名为类型的模块

[英]ImportError: No module named typing

I'm trying to create apython2 virtualenv , so I try pip install virtualenv and get我正在尝试创建一个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

I get an almost identical error with pip install 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

A lot of solutions suggest using python3 but I'm specifically trying to create a python 2 virtual environment很多解决方案都建议使用 python3,但我特别想创建一个 python 2 虚拟环境


I'm running MacOS Big Sur on a 2018 Intel i3 Mac Mini我在 2018 Intel i3 Mac Mini 上运行 MacOS Big Sur

Python 2 reached its end of life (EOL). Python 2 已达到使用寿命 (EOL)。 Consequently the support for Python 2 was removed from pip in version 21. You need to downgrade pip to version 20.因此,在版本 21 中,从pip中删除了对 Python 2 的支持。您需要将pip降级到版本 20。


I tried this (in shell command line):我试过这个(在 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

Now, pip --version shows version 21, but inside the activated environment there is version 20:现在, 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)

I tried to install a random package in the venv and it succeeded.我尝试在venv中安装一个随机的package,它成功了。

I'm afraid you'll have to use another version.恐怕您将不得不使用另一个版本。 I know you've been hearing this a lot, but python 2.7 isn't supported anymore (since 1st January 2021) so thats why it might be showing an error.我知道您经常听到这个问题,但 python 2.7 不再受支持(自 2021 年 1 月 1 日起),这就是它可能显示错误的原因。

typing is typing

New in version 3.5. 3.5 版中的新功能。

So it should be no surprise that import typing caused failure in python2.7 .因此, import typingpython2.7中导致失败也就不足为奇了。 So if you find project using import typing is either for python at least 3.5 or is using typing different from built-in module.因此,如果您发现使用import typing的项目对于 python 至少为 3.5,或者使用与内置模块不同的typing If you know to want ramifications of python2 end of life read Sunsetting Python 2 .如果您知道想要 python2 生命周期结束的后果,请阅读Sunsetting Python 2 If you have legacy python2 you might try porting to python3如果你有旧版 python2,你可以尝试移植到 python3

pip stopped supporting Python 2 in version 21 . pip 在版本 21 中停止支持 Python 2 You'll need to install an older version of pip for Python 2.您需要为 Python 2 安装旧版本的 pip。

typing module is only valid for python version 3.5 and above.打字模块仅对 python 3.5 及以上版本有效。

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

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

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