上午好☀️☀️☀️️
本答案参考通义千问
你遇到的问题确实与Windows 的安全策略变化有关,尤其是Code Integrity (CI) 和 Windows Defender Application Control (WDAC) 等机制的收紧。这种情况在系统更新后较为常见,尤其是在你最近更新了 Windows、显卡驱动或使用过企业级软件(如 EasyConnect)的情况下。
一、你的问题是否和豆包说的一样?
是的,基本一致。
原因分析如下:
- Windows 更新后加强了对非签名模块的限制,特别是针对
.pyd、.dll 等二进制文件。 - EasyConnect 或其他企业级软件可能在安装时启用了某些企业级签名策略,导致部分第三方库(如 TensorFlow)被阻止加载。
- 虚拟环境中的 TensorFlow 包未通过 Microsoft 的代码完整性验证,因此被系统拦截。
二、如何确认是不是这个问题?
你可以通过以下方式验证:
✅ 检查事件查看器(Event Viewer)
- 打开 “事件查看器”(按
Win + R,输入 eventvwr)。 - 展开 Windows Logs > Security。
- 查找 事件 ID 4101 或 事件 ID 10000,这些事件通常会显示被拒绝的模块加载行为。
- 在事件描述中查找类似以下内容:
Code Integrity determined that a process attempted to load ...
如果看到这类信息,说明确实是 Windows 安全策略阻止了 TensorFlow 的加载。
三、解决方案
以下是详细的解决步骤,包括 修改系统设置、临时绕过限制、重新安装 TensorFlow 等方法。
🔧 1. 关闭内存完整性(Memory Integrity)
这是最直接的方式之一,但需要注意:关闭此功能会降低系统安全性。
步骤如下:
- 按
Win + R,输入 msconfig,打开“系统配置”。 - 切换到 “引导” 选项卡。
- 点击 “高级选项”。
- 勾选 “安全启动” 下的 “内存完整性”。
- 重启电脑并进入 BIOS 设置(需在重启时按
F2/F12/DEL)。 - 在 Security 或 Boot 菜单中,找到 "Secure Boot" 和 "Memory Integrity",将其关闭。
- 保存设置并重启。
注意: 如果你使用的是 Windows 10/11 的 专业版/企业版/教育版,还可以通过 组策略编辑器 来关闭内存完整性。
🚫 2. 禁用 Windows Defender Application Control (WDAC)
方法一:通过 PowerShell(管理员权限)
# 关闭 WDAC
Set-SecurityPolicy -Name "Microsoft.Windows.SecPol" -Value "0"
注意: 这种方式不适用于所有版本的 Windows,建议使用 组策略编辑器。
方法二:通过组策略编辑器(仅限专业版/企业版/教育版)
- 按
Win + R,输入 gpedit.msc,打开组策略编辑器。 - 导航至:
Computer Configuration > Administrative Templates > System > Device Guard
- 双击 “Turn On Kernel-mode Code Integrity”。
- 选择 “Disabled”,然后点击应用。
⚠️ 3. 删除或卸载 EasyConnect 或其他企业级软件
如果你之前安装过学校或公司提供的 EasyConnect、Cisco AnyConnect 等软件,它们可能会在系统中留下一些安全策略。
解决方法:
- 打开 控制面板 > 程序 > 卸载程序。
- 找到 EasyConnect 或相关软件,右键选择 “卸载”。
- 重启计算机。
🔄 4. 重新创建虚拟环境并安装 TensorFlow
有时旧的虚拟环境可能已损坏或包含不受信任的文件。
步骤如下:
-
卸载当前虚拟环境:
conda env remove -n ttttest
-
创建新虚拟环境:
conda create -n new_env python=3.9
conda activate new_env
-
安装 TensorFlow:
pip install tensorflow
如果仍然报错,可以尝试使用 --trusted-host 参数忽略 SSL 验证(仅用于测试):
pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org tensorflow
🛡️ 5. 将 TensorFlow 加入白名单(不推荐长期使用)
虽然这不是最佳方案,但在某些情况下可以临时解决问题。
方法:
- 打开 Windows Defender Security Center。
- 进入 “App & browser control” > “Exploit protection”。
- 点击 “Add an exception”。
- 添加 TensorFlow 的路径(例如:
C:\Users\YourUser\Anaconda3\envs\ttttest\Lib\site-packages\tensorflow)。
注意: 这只是临时解决方案,不建议长期使用。
四、总结
| 问题 | 是否匹配豆包分析 | 建议操作 |
|------|------------------|----------|
| 无法引入 TensorFlow | ✅ 是 | 关闭内存完整性、禁用 WDAC、卸载 EasyConnect、重建虚拟环境 |
| 报错信息涉及 Code Integrity | ✅ 是 | 无需额外操作,只需调整系统安全设置 |
| 与 Windows 更新相关 | ✅ 是 | 以上措施均可解决 |
五、最终建议
如果你是开发者或学生,建议采取以下步骤:
- 关闭内存完整性(可临时使用)。
- 卸载 EasyConnect 或其他企业软件。
- 重建虚拟环境 并重新安装 TensorFlow。
- 避免使用企业级软件,以免影响开发环境。
如有需要,我可以提供 修改后的 pip 命令 或 组策略配置脚本。欢迎继续提问!