TypeError:需要byteslike对象,而不是“str”(尝试连接到Essbase)

2024-10-01 15:49:42 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我正在尝试连接到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中的Maxl DLL\ESMAXLU.dll 回溯(最近一次呼叫):

文件“”,第40行,in esss=Essbase。Essbase()

文件“C:\Python3\Lib\Essbase.py版本“,第184行,在init中” 如果(getFileVerInfo(uuu maxldl))中的“11.1.2.4”:

TypeError:需要类似字节的对象,而不是“str”


Tags: inselfnoneifinitdefdllprint

热门问题