Problème de compilation py2exe sous Windows 7 x64
Je suis en utilisant py2exe pour compiler mon script dans un fichier exe pour exécuter sur Windows, mais je suis de frapper les erreurs de mes OS, qui est windows 7 x64. Je suis l'exécution du script ci-dessous dans cmd à l'aide de execmaker.py py2exe
:
from distutils.core import setup
import py2exe
includes = []
excludes = ['_gtkagg', '_tkagg', 'bsddb', 'curses', 'email', 'pywin.debugger',
'pywin.debugger.dbgcon', 'pywin.dialogs', 'tcl',
'Tkconstants', 'Tkinter']
packages = []
dll_excludes = ['libgdk-win32-2.0-0.dll', 'libgobject-2.0-0.dll', 'tcl84.dll',
'tk84.dll']
setup(
options = {"py2exe": {"compressed": 2,
"optimize": 2,
"includes": includes,
"excludes": excludes,
"packages": packages,
"dll_excludes": dll_excludes,
"bundle_files": 1,
"dist_dir": "dist",
"xref": False,
"skip_archive": False,
"ascii": False,
"custom_boot_script": '',
}
},
windows=['My_Script.py'] #this is the name of the script I'm compiling to exe
)
Le script en lui-même je suis à la compilation en exe n'est pas important, parce que cela a fonctionné parfaitement lorsque j'ai compilé à l'aide de bundle_files: 3,
qui n'a pas de bundle tous les fichiers et les feuilles de ~200 .pyo fichiers dans un dossier.
Alors allons-y pour le centre du problème: Comme je suis sur Win 7 x64, j'ai la version 64 bits de Python 2.7.5 installé. Quand je cd
vers le fichier où le execmaker.py
et la My_Script.py
sont les fichiers et exécuter cmd (execmaker.py py2exe
), j'obtiens un message d'erreur qui se lit comme suit:
error: bundle-files 1 is not yet supported on win64
, qui, pour moi, signifie qu'il ne sera pas regrouper les fichiers parce que mon OS est en 64 bits. J'ai pensé que c'était peut être un problème créé parce que j'ai 64 bits python installé, mais lorsque je l'ai désinstallé, j'ai reçu l'erreur DLL load failed: %1 is not a valid Win32 application.
Le Chargement des DLL erreur est causée par l'exécution de 32 bits python sur Windows 64 bits. Donc, fondamentalement, il ne fonctionne pas avec les versions 32 bits ou 64 bits python parce que je suis sous Windows 64 bits. Est-il une solution pour cela, ou dois-je installer python et tous les modules que j'ai été de les utiliser sur un ordinateur 32 bits pour faire la compilation?
Merci pour l'aide, et de les porter avec moi à travers cette très longue question.
Edit - Solution: j'ai fait un peu plus de recherche et est venu avec rien. Pour l'instant, à moins de répondre à cette question avec quelque chose de plus efficace, je suppose que l'installation d'un système d'exploitation 32 bits sur une partition ou via Parallels (qui est la façon dont je l'ai fait) devra suffire.
J'apprécie le sentiment! La plupart de mes questions précédentes ont été terribles, donc c'est génial d'entendre que celui-ci pourrait être moins.
Essayez d'exécuter
python execmaker.py py2exe
. J'ai trouvé que, parfois, les résultats (d'autres scripts python) diffèrent entre explicitement invoquant l'interprète et de laisser la Fenêtre des associations de fichiers gérer.J'ai eu le même problème, et il fixe, par le ré-installer la version 32 bits de python et 32 bits py2exe sous windows.
OriginalL'auteur Ian Zane | 2013-05-16
Vous devez vous connecter pour publier un commentaire.
Je suppose qu'il est trop tard pour vous maintenant, mais pour la prochaine âme coincé dans ce bateau, à mon avis, un moyen plus efficace serait d'installer virtualbox (vb) pour gratuit de oracle et ensuite installer votre os 32 bits. De cette façon, vous n'avez pas de partition de votre disque dur ou ce n'est pas, et vous pouvez sans aucun risque de désinstaller le vb juste comme n'importe quel autre programme.
Une autre option serait d'essayer de travailler avec pyinstaller. J'ai seulement utilisé pour faire des exécutables pour les systèmes linux, mais je pense que vous pouvez l'utiliser sur windows aussi.
OriginalL'auteur Sason Torosean
J'ai eu un problème similaire, comme l'OP. Un python app livré avec Py2exe dans une version 64 bits de Windows 7 Python2.7 de l'environnement, a bien fonctionné pendant un temps sous 32 bits W7. Début août 2013, il fonctionnait toujours. Fin novembre 2013, il a été découvert qu'il avait cessé de travailler en raison d'un conflit de version. Ma meilleure supposition est que une mise à jour Windows entre ces dates causé le plus de vérification de version.
Je re-livré à l'application avec Py2Exe sur mon vieux 32-bit Vista Python27 dev de la machine, et il a travaillé à nouveau, à la fois sous 64-bits et 32-bits de Windows.
Cette réponse (à partir de ici) a été la plus utile pour moi:
Par souci d'exhaustivité, c'était le message d'erreur:
OriginalL'auteur RolfBly
Je suis également en cours d'exécution de l'application sur windows 7. Si vous en êtes capable, désinstaller python 2.7 x64, réinstaller python 2.7 x86, et enfin installer py2exe. Cette résolu le problème pour moi.
OriginalL'auteur PrestonM
Il est en ligne exe outil de générateur (py2exe.net) que "près de" a fonctionné pour moi. Je suis à la programmation en Python 2.7 et j'ai obtenu ennuyeux windows 64 problème lorsque vous essayez d'obtenir un exécutable autonome.
Même si le site web mentionné le fait qu'il est construit pour Python 3.les programmes x, j'ai téléchargé mon programme juste pour essayer.
Mon programme utiliser pygame appels à des images png, donc j'ai importé les images sur le site ainsi
J'ai reçu un fichier exécutable qui a été presque autonome: l'image d'importation n'a apparemment pas le travail que l'exécutable ne peut fonctionner que dans un dossier contenant les images. Mais encore, il est beaucoup mieux que rien.
OriginalL'auteur Glxblt76
Votre problème, c'est que py2exe est la version 32 bits et ne fonctionne pas sous windows x64.
Si c'est le cas, évidemment, besoin de 64 bits py2exe et ici, il est sur sf.net.
OriginalL'auteur Beglarm