Как исправить эту ошибку Python загрузки DLL? - PullRequest
1 голос
/ 18 мая 2010

Я использую один C ++ DLL в моем коде Python. Когда я запускаю свое приложение 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 Ответ

3 голосов
/ 18 мая 2010

Вы используете DLL, которая зависит от среды выполнения Microsoft Visual C ++, которая не установлена ​​на целевом компьютере. У вас есть несколько вариантов:

  • Установите или скопируйте библиотеки времени выполнения Visual C ++ на целевой компьютер. Установка выполняется путем добавления модулей слияния в ваш установщик (если он у вас есть) или запуска распространяемого установщика (vcredist.exe). Различные методы документированы здесь для VS2005 (другие версии будут аналогичными).

  • Если вы собрали DLL, вы можете изменить настройки проекта, чтобы статически связать библиотеки времени выполнения. См. этот ответ , чтобы увидеть, как это делается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...