解决VirtualBox安装时缺少Python核心和Win32 API的常见问题指南

一、安装Oracle VirtualBox时出现以下现象

内容提示:

安装Oracle VM VirtualBox 7.0.24的Python绑定需要先安装Python Core包和win32api绑定。

如果现在继续安装Oracle VM VirtualBox 7.0.24的Python绑定,那么这些依赖项需要在之后手动设置。用户可以参考Oracle VM VirtualBox 7.0.24 SDK手册获取更多信息。

如果忽视这项问题会遇到

二、在查询相关信息后了解到

Python Core/win32api 专为 Python 程序而设计。让 Python 与 Windows 系统通信。

通常,使用 VBox 中的图片和按钮(图形用户界面)完成许多虚拟系统的添加。但是,如果想执行更高级的作,例如使用命令处理这些 VM,则可能需要此 ID。

总之,Win32api 为 Oracle VM 软件提供了额外的功能。想要使用Oracle VM,则需要它。

三、正式踩坑

了解到这些后通常使用python的包管理器 “pip” 安装 pywin32 后可正常安装。

使用:

pip install pywin32

但是运行后却出现:

Requirement already satisfied: pywin32 in d:\programs\anaconda\anaconda3\lib\site-packages (305.1)

表明已经安装了pywin32包,但是这和Oracle VM VirtualBox 7.0.24安装程序的提示冲突,我似乎不太能理解。
明明已经存在pywin32为何还会报错?也许有人已经发现了。

“in  d:\programs\anaconda\anaconda3\lib\site-packages (305.1)”

这是 anaconda 所管理的python,由于系统中安装的python实际上还未安装,所以安装程序并未在系统中找到pywin32包。

四、解决

了解到问题,可以得出解决方案,在系统中的python环境下安装pywin32包。

1.不能运行系统python的包管理器

问题:如果直接在终端(PowerShell)中运行pip,在设定的系统环境下运行的是anaconda所管理的python,所以不能直接运行,但是我又不想改变我的系统环境,因为这可能影响我的其他程序或代码。

2.在系统python目录下运行包管理器

在终端中输入pip.exe的路径并执行下载即可

注意:如果路径中存在空格,命令行会识别为分隔符

3.cmd和PowerShell运行时的区别
 

在PowerShell运行:

PS C:\Users\username>"D:\Program Files (x86)\Python\Python313\Scripts\pip3.exe" install pywin32
所在位置 行:1 字符: 60
+ ... rogram Files (x86)\Python\Python313\Scripts\pip3.exe" install pywin32 ...
+                                                           ~~~~~~~
表达式或语句中包含意外的标记“install”。
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnexpectedToken

PowerShell 中的引号处理规则比较严格,尤其是当路径中包含空格时。命令中:PowerShell 将 install 误认为是路径的一部分,而不是 pip 的参数,因此报错

单引号在 PowerShell 中可以避免变量展开,适合用于路径处理。将路径用单引号包裹起来:

 & "D:\Program Files (x86)\Python\Python313\Scripts\pip3.exe" install pywin32

最后问题解决

作者:过去的了

物联沃分享整理
物联沃-IOTWORD物联网 » 解决VirtualBox安装时缺少Python核心和Win32 API的常见问题指南

发表回复