无法加载python 2中的动态库

2024-05-04 05:07:03 发布

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

我使用的是第三方pythonapi,它导入了一个库。以下是目录布局:

myproject
  |
  |--src
  |   |
  |   |--mycode.py
  |
  |--3rdparty
      |
      |--aardvark_py.py
      |--aardvark.dll
      |--aardvark.so

aardvak_py.py包含以下代码:

try:
    import aardvark as api
except ImportError, ex1:
    import imp, platform
    ext = platform.system() in ('Windows', 'Microsoft') and '.dll' or '.so'
    try:
        api = imp.load_dynamic('aardvark', 'aardvark' + ext)
    except ImportError, ex2:
        import_err_msg  = 'Error importing aardvark%s\n' % ext
        import_err_msg += '  Architecture of aardvark%s may be wrong\n' % ext
        import_err_msg += '%s\n%s' % (ex1, ex2)
        raise ImportError(import_err_msg)

mycode.py包含以下代码:

import sys
import os

sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)),
                   '..', '3rdparty'))

import aardvark

由于某些原因,当我运行代码时会触发异常。但是,如果我将aardvark.dll移动到mycode.py所在的目录中,一切都正常。有人能解释为什么会发生这种情况吗?有没有一种方法可以将.dll保存在另一个目录中而不移动它?你知道吗


Tags: path代码pyimport目录soosmsg