Windows 10下Anaconda Python3.8使用snap7读取S7-1200报找不到库异常
Windows 10 + Anaconda 环境下snap7库加载失败解决方法
这个报错是python-snap7封装层抛出的通用提示,其中提到的ldconfig操作是Linux系统专属的动态库刷新命令,在Windows环境下没有实际作用,核心诱因是程序无法定位到snap7官方提供的核心动态链接库,按以下步骤操作即可解决:
- 先确认Python-snap7封装包的安装状态
在你当前运行代码的Anaconda虚拟环境终端中执行pip list,检查列表中是否存在python-snap7条目,若不存在则执行pip install python-snap7完成安装,注意不要安装同名的第三方替代包,避免依赖不兼容。 - 匹配架构放置snap7核心动态库
python-snap7的pip安装包不会自带snap7的核心dll文件,需要手动放置对应版本的snap7.dll:- 先在当前虚拟环境终端执行
python -c "import platform;print(platform.architecture()[0])",确认当前Python是64位还是32位版本,获取对应架构的snap7.dll文件 - 把获取到的dll文件放到两个固定可识别路径下,避免路径扫描失效:
- 执行
python -c "import sys;print(sys.prefix)"输出的虚拟环境根目录 - 虚拟环境路径下的
Lib\site-packages\snap7文件夹内
- 执行
- 先在当前虚拟环境终端执行
- 验证加载状态
路径配置完成后重新运行测试代码:
若不再抛出找不到库的异常,即代表加载成功,可以正常发起与S7-1200的连接配置。import snap7 plc = snap7.client.Client() - 常见踩坑提示
- 严禁将32位版本的
snap7.dll放到64位Python环境中,反之同理,架构不匹配会直接触发无法加载库的报错 - 注意区分全局Anaconda环境和你创建的独立虚拟环境的路径,不要把dll放到全局环境目录下,却在独立虚拟环境中运行代码,会出现路径不匹配的问题
- 不需要额外配置Windows系统环境变量,只要放到上述两个Python可扫描的路径下,就可以被正常识别。
- 严禁将32位版本的
内容的提问来源于stack exchange,提问作者titis
相关产品推荐
相关产品推荐

