我使用 ctypes 调用 C DLL 中的函数。我遵循了here的建议,并使用它在我的包装器中打开库:
_lib = CDLL(dirname(__file__)+sep+'library.dll')
但是,库内部调用与 DLL 位于同一目录中的另一个文件。当我从不同位置调用包装器时找不到该文件。我总是必须将文件的副本放在 python 控制台的工作目录中,这可能非常不切实际。
有没有办法为ctypes调用的C DLL定义工作目录?
您可以临时将dll路径添加到系统路径中:
import os
os.environ['PATH'] = path_to_dlls + os.pathsep + os.environ['PATH']
_lib = CDLL('library.dll')