![](/img/trans.png)
[英]$pip command gets ImportError: No module named typing
[英]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 日起),這就是它可能顯示錯誤的原因。
3.5 版中的新功能。
因此, import typing
在python2.7
中導致失敗也就不足為奇了。 因此,如果您發現使用import typing
的項目對於 python 至少為 3.5,或者使用與內置模塊不同的typing
。 如果您知道想要 python2 生命周期結束的后果,請閱讀Sunsetting Python 2 。 如果你有舊版 python2,你可以嘗試移植到 python3
pip 在版本 21 中停止支持 Python 2 。 您需要為 Python 2 安裝舊版本的 pip。
打字模塊僅對 python 3.5 及以上版本有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.