문제

내가 찾은 일부 소스 코드에서 파이썬 응용 프로그램을 구축하고 있습니다. 여기

웹을 검색하여 몇 가지 문제를 컴파일하고 수정했지만이 시점에서 갇혀 있습니다.

응용 프로그램을 실행할 때이 메시지가 나타납니다.

Alt Text http://img511.imageshack.us/img511/4481/loadfr0.png

이 Python 앱인 C/C ++ 코드에 링크하기 위해 SWIG를 사용합니다.

나는 스콘 및 파이썬 2.5와 함께 컴파일하는 데 사용했던 VC ++ 2005 Express Edition을 가지고 있습니다 (2.4도 시도했습니다).

로드하려는 DLL은 "msvcr80.dll"입니다. 메시지가 "msvcr80.dll"이기 전에 찾을 수 없거나 그와 비슷한 것을 찾을 수 없기 때문입니다.

내가 여기에서 읽은 내용을 위해 :http://msdn.microsoft.com/en-us/library/ms235591(vs.80).aspx

해결책은 매니페스트 및 DLL 파일로 MT를 실행하는 것입니다. 나는 이미 그것을했고 작동하지 않습니다.

누구든지 나를 올바른 방향으로 가리킬 수 있습니까?

이것은 매니페스트 FIE의 내용입니다.

<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50608.0' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>
</assembly>

나는 지금 Python 2.6을 시도 할 것입니다. 지금은 문제를 이해하는 것이 확실하지 않지만 Python 2.5와 Python 2.5 .exe는 .exe 파일 내부에 "msvcr71.dll"문자열이있었습니다. 그러나 아마도 이것은 할 일이 없습니다.

추신. 모든 것이 Jar 파일만큼 쉬운 경우 :(

이것은 완전성을위한 스택 추적입니다

None
INFO:root:Skipping provider enso.platform.osx.
INFO:root:Skipping provider enso.platform.linux.
INFO:root:Added provider enso.platform.win32.
Traceback (most recent call last):
  File "scripts\run_enso.py", line 24, in <module>
    enso.run()
  File "C:\oreyes\apps\enso\enso-read-only\enso\__init__.py", line 40, in run
    from enso.events import EventManager
  File "C:\oreyes\apps\enso\enso-read-only\enso\events.py", line 60, in <module>
    from enso import input
  File "C:\oreyes\apps\enso\enso-read-only\enso\input\__init__.py", line 3, in <module>
    _input = enso.providers.getInterface( "input" )
  File "C:\oreyes\apps\enso\enso-read-only\enso\providers.py", line 137, in getInterface
    interface = provider.provideInterface( name )
  File "C:\oreyes\apps\enso\enso-read-only\enso\platform\win32\__init__.py", line 48, in provideInterface
    import enso.platform.win32.input
  File "C:\oreyes\apps\enso\enso-read-only\enso\platform\win32\input\__init__.py", line 3, in <module>
    from InputManager import *
  File "C:\oreyes\apps\enso\enso-read-only\enso\platform\win32\input\InputManager.py", line 7, in <module>
    import _InputManager
ImportError: DLL load failed: Error en una rutina de inicializaci¾n de biblioteca de vÝnculos dinßmicos (DLL).
도움이 되었습니까?

해결책

/ld를 컴파일러 플래그로 사용하여 ENSO를 컴파일하고 실행할 수있었습니다. 이것은 MS Visual C ++ 런타임과 동적으로 연결되며 명백하지 않고 도망 갈 수있는 것 같습니다.

스콘을 사용하는 경우 여기에서 Diff 파일을 참조하십시오. http://paste2.org/p/69732

다른 팁

업데이트를보고 설치 해야하는 것 같습니다. Pycairo Pycairo의 일부로 설치된 _cairo 모듈이 누락되었으므로. 참조 Pycairo 다운로드 페이지 Windows 용 바이너리를 확보/설치하는 방법에 대한 지침.

VC ++ 런타임 재분배 가능성을 설치해야 할 것입니다. 그들과의 링크는입니다 여기.

업데이트Python2.6 및 vs C ++ Express Edition 2008을 다운로드했으며 MSVCR80.dll의 문제는 사라졌습니다 (Python 및 VSC ++ 2008xe가 MSVSCR90.dll을 사용하기 때문에 가정합니다).

나는 /ld와 여기에 나열된 모든 변경 사항을 컴파일합니다. http://paste2.org/p/69732

그리고 이제 문제는 다음과 같습니다.

INFO:root:Skipping provider enso.platform.osx.
INFO:root:Skipping provider enso.platform.linux.
INFO:root:Added provider enso.platform.win32.
INFO:root:Obtained interface 'input' from provider 'enso.platform.win32'.
Traceback (most recent call last):
  File "scripts\run_enso.py", line 23, in <module>
    enso.run()
  File "C:\oreyes\apps\enso\enso-comunity\enso\__init__.py", line 41, in run
    from enso.quasimode import Quasimode
  File "C:\oreyes\apps\enso\enso-comunity\enso\quasimode\__init__.py", line 62, in <module>
    from enso.quasimode.window import TheQuasimodeWindow
  File "C:\oreyes\apps\enso\enso-comunity\enso\quasimode\window.py", line 65, in <module>
    from enso.quasimode.linewindows import TextWindow
  File "C:\oreyes\apps\enso\enso-comunity\enso\quasimode\linewindows.py", line 44, in <module>
    from enso import cairo
  File "C:\oreyes\apps\enso\enso-comunity\enso\cairo.py", line 3, in <module>
    __cairoImpl = enso.providers.getInterface( "cairo" )
  File "C:\oreyes\apps\enso\enso-comunity\enso\providers.py", line 137, in getInterface
    interface = provider.provideInterface( name )
  File "C:\oreyes\apps\enso\enso-comunity\enso\platform\win32\__init__.py", line 61, in provideInterface
    import enso.platform.win32.cairo
  File "C:\oreyes\apps\enso\enso-comunity\enso\platform\win32\cairo\__init__.py", line 1, in <module>
    from _cairo import *
ImportError: No module named _cairo
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top