2010-12-07 4 views
3

J'essaie de faire fonctionner la version 64 bits de python avec un programme que j'ai écrit. Ce programme utilise un gui que j'ai écrit dans PyQt4. Je ne peux pas trouver une version 64 bits de PyQt4 et je reçois l'erreur suivante lors d'une tentative d'utiliser la version 32 bits de PyQt4 avec la version 64 bits de python:Python PyQt4 et 64 bits

S:\src>SimLauncher.py 
Forcing DISTUTILS_USE_SDK=1 
Traceback (most recent call last): 
File "SimLauncher.py", line 42, in <module> 
    from SwSim import SwSim 
File "SwSim.py", line 13, in <module> 
    from PyQt4 import QtSql,QtGui 
ImportError: DLL load failed: %1 is not a valid Win32 application. 

Manifestement, il y a une façon incompatible. J'ai essayé ce correctif, mais je suis la même erreur:

http://code.google.com/p/pyqt4-win64-binaries/downloads/list

Lemme savoir si vous savez comment résoudre ça!

+0

Avez-vous regardé PySide? Il a une meilleure licence que PyQt et est un projet Nokia. http://www.pyside.org/ – sje397

+0

J'ai déjà développé un gui de 1000 lignes dans PyQt4:/ – tylerthemiler

+1

PySide est très compatible avec PyQt - vous auriez probablement seulement besoin de changer les importations en 'd'importation PySide ...' plutôt que d'importer PyQt ... ' –

Répondre

6

64 bits binaires PyQt pour Windows sont disponibles à http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqt

Mise à jour: Les binaires 64 bits PyQt4 pour Windows, y compris l'extension MySQL, sont maintenant officiellement disponibles chez Riverbank au http://www.riverbankcomputing.co.uk/software/pyqt/download

+0

Les dll sont nommé bizarre, QtCore4.dll au lieu de QtCore.dll ... et son lancement des erreurs bizarres. Quand j'essaye d'importer QtCore de PyQt4: – tylerthemiler

+0

QtCore4.dll est le même nom «bizarre» que la distribution officielle de PyQt4 utilise. Votre précédente installation PyQt4 32 bits dans le dossier Python site-packages 64 bits interfère probablement avec les fichiers PyQt4 64 bits. Essayez de nettoyer votre installation PyQt4 précédente et assurez-vous que les DLL 64 bits se trouvent dans le chemin de recherche DLL Windows avant les 32 bits. – cgohlke

+0

Le binaire fonctionne, sauf qu'il a deux copies de la DLL, si vous supprimez les DLL dans le dossier principal et laissez ceux dans bin, ils fonctionnent. Le seul problème est que cette installation ne possédait pas le matériel pyqt sql optionnel dont j'avais besoin, donc ça n'a pas vraiment résolu le problème pour moi, mais pour ceux qui n'ont pas besoin du paquet qt sql supplémentaire, ça fonctionne bien pour win7 64bit Intel! – tylerthemiler

2

Vous pouvez installer PyQt4 en utilisant l'architecture 64 bits, essayez de regarder ici http://eoyilmaz.blogspot.com/2009/09/how-to-compile-pyqt4-for-windows-x64.html

N'a pas essayé mais je l'ai fait quelque chose de similaire sur Mac OS X

+0

Ouais, j'ai vu ce lien ... Je cherchais quelque chose qui n'impliquait pas tellement de compilation et tel que je n'ai pas d'expérience avec ça. Je suppose qu'il n'y a pas de binaire nulle part? – tylerthemiler

+0

Il y a un binaire sur cette page: http://www.ozgurfx.com/downloads/PyQt-Py2.6-gpl-4.5.4-1_amd64.exe (source: http://eoyilmaz.blogspot.com /2009/09/how-to-compile-pyqt4-for-windows-x64.html) La seule chose est que vous pourriez vouloir une autre/version plus récente de PyQt ... – Xavier

+0

Est-ce que c'est important que ce soit pour AMD? ? J'ai essayé le binaire au bas de la page sur cette réponse, mais ça n'a pas fonctionné, mais c'était pour Python 2.5, alors que j'utilise 2.6. Donc je ne sais pas si le problème est AMD (j'utilise Intel) ou la version Python. – tylerthemiler