You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AlmaLinux 8安装pyvmomi 7.0.3/8.0.2报错求助

Python安装pyvmomi报错的解决方法

问题描述

在全新安装的AlmaLinux 8机器上,已安装python3、python3-pip及相关依赖,执行pip3 install ./pyvmomi-7.0.3.tar.gz安装pyvmomi 7.0.3或8.0.2版本时,出现以下报错:

Processing ./pyvmomi-7.0.3.tar.gz
Exception:
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/pip/utils/__init__.py", line 565, in untar_file
tarfile.data_filter(member.replace(name=fn), location)
AttributeError: module 'tarfile' has no attribute 'data_filter'

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/usr/lib/python3.6/site-packages/pip/commands/install.py", line 346, in run
requirement_set.prepare_files(finder)
File "/usr/lib/python3.6/site-packages/pip/req/req_set.py", line 381, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File "/usr/lib/python3.6/site-packages/pip/req/req_set.py", line 623, in _prepare_file
session=self.session, hashes=hashes)
File "/usr/lib/python3.6/site-packages/pip/download.py", line 810, in unpack_url
unpack_file_url(link, location, download_dir, hashes=hashes)
File "/usr/lib/python3.6/site-packages/pip/download.py", line 716, in unpack_file_url
unpack_file(from_path, location, content_type, link)
File "/usr/lib/python3.6/site-packages/pip/utils/__init__.py", line 622, in unpack_file
untar_file(filename, location)
File "/usr/lib/python3.6/site-packages/pip/utils/__init__.py", line 566, in untar_file
except tarfile.LinkOutsideDestinationError:
AttributeError: module 'tarfile' has no attribute 'LinkOutsideDestinationError'

疑问:是否缺少依赖包?如何从报错中判断缺失的包?使用本地仓库,需在其他机器下载最新版本后同步到本地仓库。

原因分析

不是缺少依赖包,核心问题是pip版本与Python版本不兼容:

  • tarfile.data_filter和tarfile.LinkOutsideDestinationError是Python 3.10及以上版本才新增的特性
  • 当前系统使用Python 3.6,但安装的pip版本过高,新pip会调用这些高版本Python专属的tarfile属性,导致触发AttributeError报错

解决步骤

1. 降级pip到适配Python 3.6的版本

执行以下命令,将pip降级到最后支持Python 3.6的版本:

pip3 install pip==20.3.4

2. 重新安装pyvmomi

使用降级后的pip执行本地安装命令:

pip3 install ./pyvmomi-7.0.3.tar.gz

本地仓库同步方法

在有网络的机器上(需确保Python版本匹配,或使用对应适配版本的pip):

  • 下载pyvmomi 7.0.3及其所有依赖包到指定目录:
    pip3 download pyvmomi==7.0.3 --dest ./pyvmomi-packages
    
  • 将下载好的所有.tar.gz或.whl包同步到本地仓库目录
  • 在目标AlmaLinux 8机器上,通过本地仓库安装:
    pip3 install ./pyvmomi-7.0.3.tar.gz --find-links /path/to/your/local/repo
    

报错判断技巧

  • 若报错为AttributeError: module 'xxx' has no attribute 'yyy':说明当前Python版本不支持该属性,大概率是工具(如pip)版本过高,与Python版本不兼容,而非缺少依赖包
  • 若报错为ImportError: No module named 'xxx'或PackageNotFoundError:才是明确提示缺少对应依赖包的信号

内容的提问来源于stack exchange,提问作者SHLelieveld

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 00:32:48