You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python导入clr引用OSIsoft.AFSDK程序集报错问题求助

Python导入clr模块及OSIsoft.AFSDK程序集报错修复方案

第一个报错:AttributeError: module 'clr' has no attribute 'AddReference'

  • 根因:PyPI源上名为clr的独立包和pythonnet提供的clr运行时命名空间完全冲突,这个独立clr包不具备.NET程序集加载能力,属于完全无关的废弃工具。
  • 修复操作:先彻底清除环境内的冲突包,再安装正确的pythonnet包,执行以下命令:
pip uninstall -y clr
pip uninstall -y pythonnet
pip install pythonnet

注意:安装的pythonnet必须和本地Python版本、系统架构完全匹配:64位Python必须对应64位编译的pythonnet,32位Python对应32位版本,架构不匹配会直接导致后续程序集加载失败。

第二个报错:FileNotFoundException: Unable to find assembly 'OSIsoft.AFSDK'

仅把SDK路径加到sys.path的操作无法解决问题:pythonnet加载.NET程序集时,不会默认从sys.path搜索原生DLL依赖,且如果程序集未加入全局缓存、依赖项缺失,单纯追加路径不会生效,按以下顺序排查修复:

  • 校验SDK架构和路径正确性
    你当前写的路径是32位程序目录Program Files (x86)下的SDK,如果你本地装的是64位Python,必须对应使用64位AF SDK,路径为C:\Program Files\PIPC\AF\PublicAssemblies\4.0,先到对应目录下确认OSIsoft.AFSDK.dll文件真实存在,路径写错是最高发的触发原因。
  • 调整导入逻辑,显式指定程序集加载路径
    不要仅用sys.path.append添加路径,需要同时把SDK目录加入系统PATH环境变量保证依赖DLL可被搜索,加载时优先用全路径方法加载DLL,替换原有导入代码为以下内容:
import sys
import os
# 按实际SDK安装路径修改,64位SDK去掉路径里的 (x86)
AF_SDK_ROOT = r'C:\Program Files (x86)\PIPC\AF\PublicAssemblies\4.0'
# 把SDK目录加入系统PATH,解决依赖DLL搜索问题
os.environ['PATH'] = AF_SDK_ROOT + os.pathsep + os.environ['PATH']
sys.path.append(AF_SDK_ROOT)

import clr
# 用全路径直接加载目标DLL,跳过全局搜索逻辑
clr.AddReferenceToFileAndPath(os.path.join(AF_SDK_ROOT, 'OSIsoft.AFSDK.dll'))

# 后续业务导入逻辑保持不变
from OSIsoft.AF.PI import *
from OSIsoft.AF.Search import *
from OSIsoft.AF.Asset import *
from OSIsoft.AF.Data import *
from OSIsoft.AF.Time import *
import pandas as pd
from datetime import datetime
  • 校验SDK安装完整性
    本地安装的Oracle客户端和该报错无关联。AFSDK不能仅靠拷贝DLL运行,必须完整安装PI AF Client,其运行依赖配套的VC++运行库、PI连接组件等配套文件:如果手动拷贝DLL到目录,会因为缺少关联依赖触发加载失败。可以直接到SDK目录下双击OSIsoft.AFSDK.dll验证系统是否能正常识别该程序集,若系统无法识别,重新运行PI AF Client安装包选择修复即可。
  • 校验.NET运行时版本
    路径下的4.0版本AFSDK依赖.NET Framework 4.0及以上运行时,确认系统已启用.NET Framework 4.8功能;如果使用的是基于.NET Core编译的新版AFSDK,需要安装支持.NET Core运行时的pythonnet分支版本,否则会因运行时不兼容触发程序集找不到的报错。

内容的提问来源于stack exchange,提问作者user2100039

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 13:48:19