我在我的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位)上进行了测试。
答案 0 :(得分:3)
您使用的DLL依赖于目标计算机上未安装的Microsoft Visual C ++运行时。您有几个选择:
将Visual C ++运行时库安装或复制到目标计算机。通过将合并模块添加到安装程序(如果有的话)或运行可再发行的安装程序(vcredist.exe
)来完成安装。 VS2005记录了各种方法here(其他版本类似)。
如果构建了DLL,则可以更改项目设置以静态链接运行时库。请参阅this answer了解如何完成此操作。