Visual C++ 2008 runtime files are out of data

今天用 Setup Factory打了一个包, 在win7系统上双击安装该包时,弹出如下错误:

费了好长时间,最后才知道原因:是我将vcredist_x86.exe作为从属文件加入Setup Factory时,Setup Factory对操作系统进行了限定,如下:

上面的界面是按下面的步骤弹出的
1:从“资源->从属文件”弹出如下界面:

2:然后再双击“Visual C++ 2008(32-bit)”弹出的界面中选择“安装”页签。


可以看到“安装”页签界面中的脚本没有对win7支持,故会出现这样的错误框,我想加入对win 7的脚本支持,像如下那样:

可依然还是弹出那个错误框,我估计是tblOSInfo.MajorVersion 等对win7系统的值不对所致,找帮助文档,也没见对win7的大小版本号的数值说明,最简单的办法是将这里的脚本全部删除,不用对操作系统判断,删除后,错误不再出现

### ONNXRuntime GPU 版本安装及 PyInstaller 打包常见问题分析 在使用 `onnxruntime-gpu` 进行深度学习推理时,如果遇到 CUDA 驱动未找到或其他相关错误,通常是由以下几个原因引起的: #### 1. **CUDA 和 cuDNN 的兼容性** 确保本地已正确安装与 `onnxruntime-gpu` 兼容的 CUDA 和 cuDNN 版本。例如,某些版本的 `onnxruntime-gpu` 可能仅支持特定范围内的 CUDA 版本(如 CUDA 10.2 或 11.3)。可以通过官方文档确认具体需求[^1]。 #### 2. **PyInstaller 打包时缺少必要的 DLL 文件** 当使用 PyInstaller 将 Python 脚本打包成可执行文件时,可能会遗漏一些动态链接库 (DLL),这些库对于 GPU 加速至关重要。以下是可能缺失的关键文件及其作用: - **cudart*.dll**: 提供 CUDA Runtime 支持。 - **cublas*.dll, cusparse*.dll**: 实现线性代数运算加速。 - **nvcuda.dll**: NVIDIA 显卡驱动接口。 为了修复此问题,需手动将上述 DLL 复制到最终生成的 exe 文件目录中。可通过以下方法定位并复制所需文件: ```bash where cudart64_*.dll cublas64_*.dll nvcuda.dll ``` #### 3. **Visual Studio 编译器差异引发的问题** 不同版本的 Visual Studio 对于 C++ 库的支持可能存在不一致情况。例如,VS2017 中可能出现编译后的二进制文件无法正常运行的现象,而在 VS2019 下却能够成功构建和运行。这主要是因为 MSVC 工具链更新带来的 ABI 不兼容问题[^2]。 建议采取以下措施规避此类风险: - 使用最新版 Visual Studio 构建项目; - 如果必须保留旧版工具链,则应重新评估目标平台上的依赖项加载路径设置。 #### 4. **显卡驱动程序状态检查** 即使系统上存在合适的 CUDA SDK,但如果硬件设备端没有及时升级至匹配版本号以上的图形处理器驱动软件,也可能触发类似的“找不到 CUDA”的警告消息。故而推荐定期访问 NVIDIA 官网下载最新的 WHQL 认证型驱动产品予以替换原有老旧型号实例。 --- ### 示例代码:调整 PyInstaller 命令以包含额外资源 下面展示如何修改默认行为从而自动引入所需的外部组件进入最终产物之中: ```python import os from pathlib import Path def collect_onnx_runtime_data(): """Collect all necessary onnx runtime data files.""" base_dir = r"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin" dlls_to_include = ["cudart64_102.dll", "cublas64_10.dll"] collected_files = [] for dll_name in dlls_to_include: full_path = Path(base_dir) / dll_name if full_path.exists(): collected_files.append((str(full_path), '.')) return collected_files hidden_imports = ['onnxruntime'] additional_datas = collect_onnx_runtime_data() cmd_template = ( 'pyinstaller --noconfirm {script} ' '--hidden-import={imports} ' '{extra_data}' ) # Construct final command string based upon gathered information above. final_command = cmd_template.format( script="your_script.py", imports=' '.join(hidden_imports), extra_data=' '.join([f'--add-data "{src};{dest}"' for src, dest in additional_datas]) ) print(final_command) os.system(final_command) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值