一、问题概述
当使用内网Windows环境安装dmPython时由于环境中没有Microsoft Visual C++ 14.0导致报错。
error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
二、问题分析
利用有网络的Windows服务器安装同版本Python,对dmPython源码进行编译,生成whl文件。再将whl文件拿到离线环境进行安装。
三、解决步骤
3.1 安装同版本Python
https://www.python.org/downloads
3.2 下载dmPython源码
https://gitee.com/DamengDB/dmPython
3.3 编译生成whl文件
PS C:\dmPython-main> python setup.py bdist_wheel
whl文件位于dmPython-main\dist目录下

3.4 将whl文件在离线环境安装
PS C:\dmPython-main\dist> pip install .\dmpython-2.5.26-cp313-cp313-win_amd64.whl

3.5 编写程序进行测试
import dmPython
conn=dmPython.connect(user='SYSDBA',password='SYSDBA',server= '192.168.10.10',port=5236)
cursor = conn.cursor()
cursor.execute('select username from dba_users')
values = cursor.fetchall()
print(values)
cursor.close()
conn.close()
四、其他思路
从可以联网的机器上制作离线包,然后传输到离线环境进行安装Microsoft Visual C++以解决报错问题。
4.1 联网机器获取 vs_buildtools.exe
下载地址:https://aka.ms/vs/17/release/vs_BuildTools.exe
4.2 联网机器制作离线包
打开命令行(cmd或PowerShell),导航到 vs_buildtools.exe 所在的目录,执行以下命令来下载完整的离线安装文件。
PS C:\Downloads> .\vs_BuildTools.exe --layout C:\vs2022_offline --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --lang zh-CN
--layout C:\vs2022_offline指定将完整的离线安装包下载到本地的 C:\vs2022_offline 文件夹,下载完成后,将整个 C:\vs2022_offline 文件夹(确保包含所有文件)拷贝到你的离线目标机上。
4.3 离线机器上安装
在离线机上,以管理员身份打开 PowerShell,进入离线包目录,然后运行
PS C:\vs2022_offline> .\vs_setup.exe --noweb --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended