在Ubuntu 22.04中使用pip安装Twisted失败的问题求助
在Ubuntu 22.04上安装Python 2.7版Twisted失败的解决方案
问题重现
执行以下步骤后,Twisted安装失败:
apt-get install python2.7curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py && python2.7 get-pip.pypip install twisted
错误日志核心内容:
Downloading Twisted-20.3.0.tar.bz2 (3.1 MB) #11 18.36 ERROR: Command errored out with exit status 1: #11 18.36 command: /usr/bin/python2.7 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-MIySwm/twisted/setup.py'"'"'; __file__='"'"'/tmp/pip-install-MIySwm/twisted/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"' '"'"', '"'"' '"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-ljazb4 #11 18.36 cwd: /tmp/pip-install-MIySwm/twisted/ #11 18.36 Complete output (24 lines): #11 18.36 弃用提示:Python 2.7已于2020年1月1日停止维护,请升级Python版本。pip 21.0将在2021年1月停止支持Python 2.7。更多详情请查看:https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0将移除对此功能的支持。 #11 18.36 Traceback (most recent call last): #11 18.36 File "<string>", line 1, in <module> #11 18.36 File "/tmp/pip-install-MIySwm/twisted/setup.py", line 20, in <module> #11 18.36 setuptools.setup(**_setup["getSetupArgs"]()) #11 18.36 File "/usr/local/lib/python2.7/dist-packages/setuptools/__init__.py", line 162, in setup #11 18.36 return distutils.core.setup(**attrs) #11 18.36 File "/usr/lib/python2.7/distutils/core.py", line 111, in setup #11 18.36 _setup_distribution = dist = klass(attrs) #11 18.36 File "/usr/local/lib/python2.7/dist-packages/setuptools/dist.py", line 448, in __init__ #11 18.36 k: v for k, v in attrs.items() #11 18.36 File "/usr/lib/python2.7/dist-packages/distutils/dist.py", line 287, in __init__ #11 18.36 self.finalize_options() #11 18.36 File "/usr/local/lib/python2.7/dist-packages/setuptools/dist.py", line 740, in finalize_options #11 18.36 ep(self) #11 18.36 File "/usr/local/lib/python2.7/dist-packages/setuptools/dist.py", line 747, in _finalize_setup_keywords #11 18.36 ep.load()(self, ep.name, value) #11 18.36 File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2443, in load #11 18.36 return self.resolve() #11 18.36 File "/usr/local/lib/python2.7/dist-packages/ pkg_resources/__init__.py", line 2449, in resolve #11 18.36 module = __import__(self.module_name, fromlist=['__name__'], level=0) #11 18.36 File "/tmp/pip-install-MIySwm/twisted/.eggs/incremental-22.10.0-py2.7.egg/incremental/__init__.py", line 14, in <module> #11 18.36 from typing import TYPE_CHECKING, Any, TypeVar, Union, Optional, Dict #11 18.36 ImportError: No module named typing #11 18.36 ---------------------------------------- #11 18.36 ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
错误原因
安装Twisted时,pip自动拉取了incremental 22.10.0版本,该版本引入了Python 3.x专属的typing模块依赖,但Python 2.7原生没有这个模块,导致安装流程中断。
解决方法
方法1:先安装兼容Python 2.7的incremental版本
先锁定不依赖typing的incremental老版本,再安装Twisted:
pip install incremental==21.3.0 pip install twisted
方法2:直接指定兼容的Twisted版本及依赖
一次性安装适配Python2.7的Twisted版本和对应依赖包:
pip install twisted==20.3.0 incremental==21.3.0
长期方案:迁移到Python3
Python2.7已停止官方维护,Ubuntu22.04默认支持Python3.8及以上版本,建议直接安装Python3版本的Twisted:
apt-get install python3-pip pip3 install twisted
内容的提问来源于stack exchange,提问作者Priya
相关产品推荐
相关产品推荐

