如何修复此DLL加载python错误?

时间:2010-05-17 20:43:36

标签: python

我在我的python代码中使用了一个c ++ dll。 当我在我的计算机上运行我的python应用程序时,它工作正常,但当我将所有复制到另一台计算机时,会发生这种情况:

Traceback (most recent call last):
 File "C:\users\Public\SoundLog\Code\Código Python\SoundLog\SoundLog.py", line 9, in <module>
   from Auxiliar import *
 File "C:\users\Public\SoundLog\Code\Código Python\SoundLog\Auxiliar\DataCollection.py", line 4, in <module>
   import SoundLogDLL
 File "C:\users\Public\SoundLog\Code\Código Python\SoundLog\Auxiliar\SoundLogDLL.py", line 4, in <module>
   dll = cdll.LoadLibrary(os.environ['PUBLIC'] + "\\SoundLog\\DLLs\\ForPython\\SoundLogC++WrapperDLL.dll")
 File "C:\Python26\lib\ctypes\__init__.py", line 431, in LoadLibrary
   return self._dlltype(name)
 File "C:\Python26\lib\ctypes\__init__.py", line 353, in __init__
   self._handle = _dlopen(self._name, mode)
WindowsError: [Error 14001] The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail

如何解决这个问题,以便我的python应用程序可以在每台计算机上运行?

注意: 我只需要他们像我一样在Windows 7上工作。我在另一台win7计算机(均为32位)上进行了测试。

1 个答案:

答案 0 :(得分:3)

您使用的DLL依赖于目标计算机上未安装的Microsoft Visual C ++运行时。您有几个选择:

  • 将Visual C ++运行时库安装或复制到目标计算机。通过将合并模块添加到安装程序(如果有的话)或运行可再发行的安装程序(vcredist.exe)来完成安装。 VS2005记录了各种方法here(其他版本类似)。

  • 如果构建了DLL,则可以更改项目设置以静态链接运行时库。请参阅this answer了解如何完成此操作。