Question

Je construis une application python à partir d'un code source que j'ai trouvé ici

J'ai réussi à compiler et à résoudre certains problèmes en effectuant une recherche sur le Web, mais je suis bloqué à ce stade:

Lors de l'exécution de l'application, ce message apparaît.

texte de remplacement http://img511.imageshack.us/img511/4481/loadfr0 .png

Cette application python, utilise swig pour créer un lien vers le code c / c ++.

J'ai VC ++ 2005 Express Edition que je compilais avec scons et Python 2.5 (et essayé 2.4 aussi)

Les dll qui tentent de charger est "msvcr80.dll". car avant le message était & msgcr & msvcr80.dll " ne peut pas être trouvé ou quelque chose comme ça, alors je l'ai eu et le déposer dans le dossier window32.

Pour ce que j'ai lu ici: http://msdn.microsoft.com/en-us /library/ms235591(VS.80).aspx

La solution consiste à exécuter MT avec le manifeste et le fichier dll. Je l'ai déjà fait et ne fonctionne pas non plus.

Quelqu'un pourrait-il m'indiquer la bonne direction?

Ceci est le contenu du fichier manifeste:

<?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>

Je vais essayer Python 2.6 maintenant, je ne suis pas tout à fait sûr de comprendre le problème, mais Python 2.5 et Python 2.5 .exe avaient la chaîne "MSVCR71.dll". à l'intérieur du fichier .exe. Mais cela n’a probablement rien à voir.

ps. si seulement tout était aussi simple que des fichiers jar :(

C’est la trace de la pile pour l’exhaustivité

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).
Était-ce utile?

La solution

J'ai pu compiler et exécuter Enso en utilisant / LD comme indicateur de compilation. Cela lie dynamiquement au runtime MS Visual C ++ et semble vous permettre de vous échapper sans manifeste.

Si vous utilisez SCons, consultez le fichier diff ici: http://paste2.org/p/ 69732

Autres conseils

En regardant votre mise à jour, il semble que vous deviez installer Pycairo depuis votre absence. le module _cairo installé dans le cadre de Pycairo. Consultez la page de téléchargements de Pycairo pour savoir comment obtenir / installer des fichiers binaires pour Windows.

Vous devez probablement installer les redistribuables d'exécution VC ++. Les liens menant à eux sont ici .

mettre à jour J'ai téléchargé python2.6 et VS C ++ Express Edition 2008 et le problème avec le fichier msvcr80.dll a disparu (je suppose que Python et VSC ++ 2008xe utilisent msvscr90.dll)

J'ai compilé avec / LD et toutes les modifications répertoriées ici: http://paste2.org/p / 69732

Et maintenant, le problème est le suivant:

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top