python - TypeError:需要一个类似字节的对象,而不是“str”(尝试连接到 Essbase)
问题描述
您好,我正在尝试连接到 Essbase,但出现错误。解决此问题的任何帮助表示赞赏。
Essbase 类:
def __init__(self):
self.user = None
self.sid = None
self.ssnInit = None
self.numRows = None
self.numFlds = None
self.sts = None
self.bMdxQuery = None
# Check for environment variables needed for essbase
try:
os.environ["ESSBASEPATH"]
os.environ["PATH"]
except KeyError as e:
print ("environment variable {VAR} not set".format(VAR=e))
raise SystemExit
# Initialize MaxL API
inst = maxl_instinit_t()
# Try to find and load the DLL
__maxldll = find_library('essmaxlu')
if __maxldll:
print ("Using Maxl DLL in {DLLpath}".format(DLLpath = __maxldll))
if "11.1.2.4" in (getFileVerInfo(__maxldll)):
MAXL_MDXCELLSTRSZ = 1024 + 3
else:
MAXL_MDXCELLSTRSZ = 1024
self.maxl = cdll.LoadLibrary(__maxldll)
else:
print ("maxl DLL not found")
raise SystemExit
if ESS_UTF:
inst.bUTFInput = ESS_TRUE
sts = self.maxl.MaxLInit(byref(inst))
Essbase.isInitialized = (sts == MAXL_MSGLVL_SUCCESS)
def __del__(self):
if Essbase.isInitialized:
# Terminate MaxL API
sts = self.maxl.MaxLTerm()
Essbase.isInitialized = False
我收到以下错误消息...
在 C:\ORACLE\Middleware\EPMSystem11R1\common\EssbaseRTC-64\11.1.2.0\bin\essmaxlu.dll Traceback 中使用 Maxl DLL(最近一次调用最后):
文件“”,第 40 行,在 esss = Essbase.Essbase()
文件“C:\Python3\Lib\Essbase.py”,第 184 行, 如果在 (getFileVerInfo(__maxldll)) 中出现“11.1.2.4” ,则在init中:
TypeError:需要一个类似字节的对象,而不是“str”
解决方案
推荐阅读
- twitter-bootstrap - 为什么这个 Bootstrap 下拉菜单在单击时不显示内容?
- javascript - 为什么下面的代码会产生运行时错误?
- ruby - 由于 leveldb 无法升级 ruby
- amazon-web-services - 删除孤立的 AWS ENI + SG?`当前正在使用`和`有一个依赖对象`?
- php - 我无法在容器内运行 php artisan migrate 指出 ip external
- node.js - “跨源请求被阻止”似乎没有解决方案有效
- java - 在类之间传递值和更新回收器视图时,如何修复“onCreate 之前的系统服务不可用于活动”?
- android - 如何根据数据库中的数据动态更新警报对话框中的简单对话框选项?
- c# - .NET Core:我无法连接从 base 64 创建的证书 X509Certificate2
- validation - 保护数据验证不被删除,但仍然可以更改