2009-05-22 8 views
2

J'ai un script de configuration standard pour py2exe avec lequel je regroupe des applications basées sur PyQt dans des fichiers Windows .exe.Regroupement de PyQwt avec py2exe

Aujourd'hui, j'ai essayé un script simple qui utilise le module PyQwt, et cela ne semble pas fonctionner. py2exe fonctionne bien, mais quand je l'exécute .exe crée, il vide les éléments suivants dans un fichier journal et ne fonctionne pas:

Traceback (most recent call last): 
    File "qwt_test.pyw", line 5, in <module> 
    File "zipextimporter.pyo", line 82, in load_module 
    File "PyQt4\Qwt5\__init__.pyo", line 32, in <module> 
    File "zipextimporter.pyo", line 98, in load_module 
ImportError: MemoryLoadLibrary failed loading PyQt4\Qwt5\Qwt.pyd 

Quand je regarde dans PyQt4\Qwt5\ dans le répertoire build\bdist.win32\winexe\collect-2.5, Qwt.pyd est certainement là.

Je n'arrive pas à trouver quelque chose d'utile en ligne concernant cette erreur. Qu'est-ce qui pourrait le provoquer? Merci.

Répondre

4

py2exe n'est pas le seul moyen, et peut-être pas le meilleur, de créer des fichiers exe pour les applications Python - en particulier, il ne supporte pratiquement pas du tout pyqt. S'il vous plaît, je vous implore, consultez PyInstaller, qui sait sur PyQt (et Linux, et Mac, si vous vous souciez ...) - assurez-vous d'utiliser la vérification de tête SVN, pas la version "libérée", qui à cette fois-ci est sérieusement dépassée (un problème qui devrait bientôt disparaître ...).

+0

Alex, py2exe fonctionne juste Pour moi, ça ne pose que des problèmes, pourquoi est-ce que tu préfères PyInstaller? Pour moi, il semble moins supporté, moins mis à jour et un peu archaïque à utiliser –

+1

Utilisé pour être (moins supporté & c) mais ça a changé récemment - voir http://www.pycon.it/conference/talks/distribuire-programmi-python-con-pyinstaller et http://www.pycon.it/static/stuff/slides/distribuire-programmi-python-con -pyinstaller.pdf (ne vous inquiétez pas pour l'URL, c'est en anglais ;-). Une fois que vous svn co http://svn.pyinstaller.org/trunk pyinstaller, pyinstall er/doc/CHANGES.txt répertorie les nombreux changements depuis 1.3. J'espère juste qu'ils feront une sortie bientôt! -) –

+0

J'ai déjà travaillé avec PyInstaller, et en fait, il a réussi à emballer l'application PyQwt correctement. Mais j'étais toujours déçu par le manque de soutien. Avoir à télécharger à partir de SVN n'est pas un signe d'un projet en bonne santé. J'espère que vous avez raison et qu'ils vont l'améliorer bientôt. –

1

Certaines options:

  1. Essayez de jouer avec le py2xe bundle_files options (3, 2, 1) (surtout si vous les mettez tous dans un grand zip bibliothèque, quelques DLLs ne le font pas comme ça).
  2. Assurez-vous qu'une copie de msvcp71.dll existe sous windows \ system32 ou dans le répertoire de votre exécutable.
  3. Essayez d'exclure la dll explicitement (ajouter Qwt.pyd à l'option dll_excludes et (après la construction) copie Qwt.pyd (et _Qwt.pyd si elle existe) à votre chemin exécutable.
Questions connexes