我正在使用API,它具有以下代码:
# aardvark_py.py
import os
import sys
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)
毋庸置疑,我无法修改此代码。
我的问题在于这行代码:
api = imp.load_dynamic('aardvark', 'aardvark' + ext)
第二个参数设置.dll
的路径,即设置为aarvark.dll
,它位于aardvark_py.py
所在的同一位置。我将此模块aardvark_py
导入到我的代码中。我的代码与aardvark_py.py
和aardvark.dll
的位置不同。但是,当我进行导入时,它失败了。它提出了一个例外。看起来它不知道.dll
的位置,但我无法弄清楚原因。这是我得到的错误
"path\to\aardvark_py.py", line 71, in <module>
raise ImportError(import_err_msg)
ImportError: Error importing aardvark.dll
Architecture of aardvark.dll may be wrong
No module named aardvark
DLL load failed: The specified module could not be found.
这是近似目录布局:
project_dir -
|
|- 3rdparty
| |
| |-aardvark
| |
| |-aarvark_py.py
| |-aardvark.dll
|
|
|-tools
|
|-mycode.py
mycode.py
确实包含修改sys.path
sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__))), '..', '3rdparty', 'aardvark')
答案 0 :(得分:0)
我在32位python 2.7中遇到了同样的问题。我安装了64位python 2.7,现在它可以工作。