Frage

Ich baue eine Python-Anwendung von einem Quellcode ich gefunden habe Hier

Ich habe es geschafft, einige Probleme zu kompilieren und zu beheben, indem Sie die Web-Suche, aber ich bin an diesem Punkt fest:

Beim Ausführen der Anwendung dieser Meldung angezeigt wird.

alt text http://img511.imageshack.us/img511/4481/loadfr0 .png

Diese Python-Anwendung, swig usues zu C / C ++ Code zu verbinden.

Ich habe VC ++ 2005 Express Edition, die ich verwendet, um mit scons zu kompilieren entlang und Python 2.5 (und versuchte 2.4 auch)

Die DLLs, die zu laden versuchen, ist „msvcr80.dll“, weil, bevor die Nachricht war „msvcr80.dll“ nicht so etwas gefunden oder werden, so habe ich es und es in window32 Ordner.

Für das, was ich hier gelesen habe: http://msdn.microsoft.com/en-us /library/ms235591(VS.80).aspx

Die Lösung ist MT mit dem Manifest und der DLL-Datei auszuführen. Ich habe es schon und funktioniert auch nicht.

Kann mir jemand in die richtige Richtung?

Dies ist der Inhalt des Manifests 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>

Ich gehe jetzt 2.6 Python versuchen, ich bin nicht ganz sicher, das Problem zu verstehen, aber Python 2.5 und Python 2.5 Exe hatten die Zeichenfolge „MSVCR71.dll“ in der EXE-Datei. Aber wahrscheinlich hat dies nichts zu tun.

ps. Wenn nur alles so einfach wie JAR-Dateien :(

Dies ist die Stack-Trace für Vollständigkeit

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).
War es hilfreich?

Lösung

Ich habe in der Lage Enso zu kompilieren und auszuführen, indem Sie / LD als Compiler-Flag. Diese Links dynamisch an dem MS Visual C ++ Runtime und scheinen Sie zu ermöglichen, ohne einen offensichtlichen wegzukommen.

Wenn Sie SCons verwenden, finden Sie in der Diff-Datei hier: http://paste2.org/p/ 69732

Andere Tipps

an Ihrem Update Blick sieht es aus wie Sie installieren müssen PyCairo da Sie fehlt _cairo das Modul als Teil pycairo installiert. Sehen Sie sich die PyCairo Downloads für Anweisungen, wie zu erhalten / install-Binärdateien für Windows.

Sie müssen wahrscheinlich die VC ++ Runtime redistributables installieren. Die Links zu ihnen sind hier .

Update Ich habe heruntergeladen python2.6 und VS C ++ Express Edition 2008 und das Problem mit der msvcr80.dll ist weg (ich nehme an, weil Python und VSC ++ 2008xe Verwendung msvscr90.dll)

Ich habe mit / LD kompilieren und alle Änderungen, die hier aufgeführt: http://paste2.org/p / 69732

Und jetzt das Problem folgt:

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top