安装AioHttp时遇multidict模块缺失错误,求解决方法
解决pip3安装aiohttp时提示找不到multidict模块的问题
你的错误根源在于安装aiohttp源码包时,前置依赖的multidict模块未被提前安装,再加上Python3.6搭配旧版pip的依赖解析逻辑存在缺陷,导致无法自动处理这类前置依赖需求。以下是几种可行的修复方案:
方法一:手动预安装依赖后再安装aiohttp
- 先升级pip到兼容Python3.6的最新版本,解决依赖解析bug:
pip3 install --upgrade pip
- 安装与aiohttp 3.8.3完全兼容的multidict版本:
pip3 install multidict==5.2.0
- 重新执行aiohttp安装命令:
pip3 install aiohttp==3.8.3
方法二:用构建隔离参数自动处理依赖
直接在安装aiohttp时添加--no-build-isolation参数,让pip在安装流程中自动处理所有依赖项:
pip3 install aiohttp --no-build-isolation
方法三:使用预编译wheel包避免源码编译
如果源码编译仍报错,先安装wheel工具,让pip优先下载预编译的二进制包,跳过源码编译环节:
pip3 install wheel pip3 install aiohttp
你的报错日志:
root@user:/home/user/server/user# pip3 install aiohttp Collecting aiohttp Using cached https://files.pythonhosted.org/packages/ff/4f/62d9859b7d4e6dc32feda67815c5f5ab4421e6909e48cbc970b6a40d60b7/aiohttp-3.8.3.tar.gz Complete output from command python setup.py egg_info: ********************* * Accelerated build * ********************* Traceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/pip-build-0b29nbfp/aiohttp/setup.py", line 54, in <module> setup(**setup_kwargs) File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 129, in setup return distutils.core.setup(**attrs) File "/usr/lib/python3.6/distutils/core.py", line 121, in setup dist.parse_config_files() File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 494, in parse_config_files ignore_option_errors=ignore_option_errors) File "/usr/lib/python3/dist-packages/setuptools/config.py", line 106, in parse_configuration meta.parse() File "/usr/lib/python3/dist-packages/setuptools/config.py", line 382, in parse section_parser_method(section_options) File "/usr/lib/python3/dist-packages/setuptools/config.py", line 355, in parse_section self[name] = value File "/usr/lib/python3/dist-packages/setuptools/config.py", line 173, in __setitem__ value = parser(value) File "/usr/lib/python3/dist-packages/setuptools/config.py", line 430, in _parse_version version = self._parse_attr(value) File "/usr/lib/python3/dist-packages/setuptools/config.py", line 305, in _parse_attr module = import_module(module_name) File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 665, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 678, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/tmp/pip-build-0b29nbfp/aiohttp/aiohttp/__init__.py", line 5, in <module> from . import hdrs as hdrs File "/tmp/pip-build-0b29nbfp/aiohttp/aiohttp/hdrs.py", line 8, in <module> from multidict import istr ModuleNotFoundError: No module named 'multidict' ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-0b29nbfp/aiohttp/
内容的提问来源于stack exchange,提问作者Niks
相关产品推荐
相关产品推荐

