Python:C+的包装器+;需要访问.dll文件 我用C++编写了一个用Syg编写的SDK Python包装器,并在Windows 7中使用微软Visual Studio 2010构建。
这是一个成功,生成了module.py和_module.pyd。然而,这个包装器严重依赖于位于PythonXY文件夹外的SDK文件夹中的几个.dll文件 在我将module.py和module.pyd移动到PythonXY/Lib/site packages/中,并尝试运行导入模块后,出现以下错误:Python:C+的包装器+;需要访问.dll文件 我用C++编写了一个用Syg编写的SDK Python包装器,并在Windows 7中使用微软Visual Studio 2010构建。,python,c++,windows,dll,swig,Python,C++,Windows,Dll,Swig,这是一个成功,生成了module.py和_module.pyd。然而,这个包装器严重依赖于位于PythonXY文件夹外的SDK文件夹中的几个.dll文件 在我将module.py和module.pyd移动到PythonXY/Lib/site packages/中,并尝试运行导入模块后,出现以下错误: ImportError: DLL load failed: The specified module could not be found. 然后,我尝试使用Python模块os中的os.chdi
ImportError: DLL load failed: The specified module could not be found.
然后,我尝试使用Python模块os中的os.chdir()方法将Python工作目录更改为.dll文件所在的目录。这一次,运行导入模块输出没有错误。我继续访问包装的C++类和函数,它们工作得很好。
我的问题是:
- 如何“链接”包含.dll文件的路径,以便在使用模块时不必更改工作目录
- 除了Python源文件中的Python默认工作目录之外,是否还有其他附加工作目录的方法?(即不是从Windows上的路径配置)
- 是否有任何方法可以将包装器与那些.dll文件动态链接?也就是说,假设文件被复制到另一台机器上,.dll文件存储在不同的绝对路径目录下,导入模块仍然可以工作
_modulelib
你试过把它放在Windows会查找DLL的地方吗?我如何检查Windows会查找DLL的目录?