解决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
最后问题解决
作者:过去的了