depuis des lustres maintenant j'ai essayé d'emballer mes applications python comme un exécutable autonome. J'ai essayé d'utiliser py2exe
mais il n'a jamais semblé fonctionner. Disons que nous avons la machine A et la machine B, je construis le programme sur la machine A et essaye de fonctionner en tant qu'exécutable sur la machine B. Les premières tentatives pour exécuter sur la machine B diraient FATAL ERROR: Cannot load python library
mais je pensée qui était en baisse au processus py2exe
disant 1 missing module
complet:ne peux pas obtenir py2exe au travail
1 missing Modules
------------------
? readline imported from cmd, code, pdb
Building 'dist\workinghoursGUI.exe'.
Building shared code archive 'dist\library.zip'.
Copy c:\python34\python34.dll to dist
Copy C:\Python34\DLLs\select.pyd to dist\select.pyd
Copy C:\Python34\DLLs\_lzma.pyd to dist\_lzma.pyd
Copy C:\Python34\DLLs\_socket.pyd to dist\_socket.pyd
Copy C:\Python34\DLLs\unicodedata.pyd to dist\unicodedata.pyd
Copy C:\Python34\DLLs\_bz2.pyd to dist\_bz2.pyd
Copy C:\Python34\DLLs\pyexpat.pyd to dist\pyexpat.pyd
Copy C:\Python34\DLLs\_hashlib.pyd to dist\_hashlib.pyd
Copy C:\Python34\DLLs\_ssl.pyd to dist\_ssl.pyd
Copy C:\Python34\DLLs\_ctypes.pyd to dist\_ctypes.pyd
Copy C:\Python34\DLLs\_tkinter.pyd to dist\_tkinter.pyd
Copy DLL C:\Python34\MSVCR100.dll to dist\
Copy DLL C:\Python34\DLLs\tk86t.dll to dist\
Copy DLL C:\Python34\DLLs\tcl86t.dll to dist\
alors j'ai vu cette question Py2Exe "Missing Modules" et a découvert que je devais installer pyreadline
donc je ne puis le processus py2exe
na pas retourner les modules manquants comme ceci:
Building 'dist\workinghoursGUI.exe'.
Building shared code archive 'dist\library.zip'.
Copy c:\python34\python34.dll to dist
Copy C:\Python34\lib\site-packages\win32\_win32sysloader.pyd to dist\_win32sysloader.pyd
Copy C:\Python34\DLLs\_ssl.pyd to dist\_ssl.pyd
Copy C:\Python34\DLLs\select.pyd to dist\select.pyd
Copy C:\Python34\DLLs\_socket.pyd to dist\_socket.pyd
Copy C:\Python34\DLLs\_bz2.pyd to dist\_bz2.pyd
Copy C:\Python34\DLLs\_lzma.pyd to dist\_lzma.pyd
Copy C:\Python34\DLLs\pyexpat.pyd to dist\pyexpat.pyd
Copy C:\Python34\DLLs\_tkinter.pyd to dist\_tkinter.pyd
Copy C:\Python34\DLLs\unicodedata.pyd to dist\unicodedata.pyd
Copy C:\Python34\lib\site-packages\win32\win32api.pyd to dist\win32api.pyd
Copy C:\Python34\DLLs\_hashlib.pyd to dist\_hashlib.pyd
Copy C:\Python34\lib\site-packages\win32\win32evtlog.pyd to dist\win32evtlog.pyd
Copy C:\Python34\DLLs\_ctypes.pyd to dist\_ctypes.pyd
Copy DLL C:\Python34\DLLs\tcl86t.dll to dist\
Copy DLL C:\Python34\MSVCR100.dll to dist\
Copy DLL C:\Python34\DLLs\tk86t.dll to dist\
Copy ExtensionDLL C:\Python34\pywintypes34.dll to dist\
mais maintenant sur la machine B lorsque le .exe
est exécuté une fenêtre avec juste la sortie port>
est affiché pendant que l'application fonctionne très bien sur la machine A
ceci est mon fichier de configuration:
from distutils.core import setup
import py2exe,sys,os
setup(console=['workinghoursGUI.py'])
et la les importations dans mon programme sont tous dans la version standard de python qui sont:
from tkinter import *
from tkinter import ttk
import tkinter as tk
import tkinter.messagebox as tkm
import datetime,os,time
im probablement faire quelque chose de mal, mais évidemment je ne peux pas travailler quoi, est-ce que quelqu'un sait comment je peux résoudre ce problème ou est-ce que je vais devoir abandonner?
le dossier dist
ressemble à ceci:
applications autonomes de construction avec des logiciels comme py2exe peut être une vilaine affaire. C'est faisable (j'ai fait beaucoup, beaucoup de fois) mais vous finissez par passer beaucoup de temps à bricoler avec le dossier de distribution (comme "manuellement" copier les choses manquantes). Les versions python et py2exe sont toutes deux importantes pour cette question. Aussi les résultats du fichier journal (qui apparaît dans dist lorsque vous exécutez le logiciel). [continue ...] – armatita
[... continue] Mon conseil est que vous changiez le paradigme de vos distributions autonomes. Au lieu d'essayer de tout empaqueter en utilisant py2exe juste distribuer une version portable de Python (par exemple [WinPython] (http://winpython.github.io/)) avec votre logiciel avec un fichier .exe ou par lots lancer l'application en utilisant le portable version. C'est ainsi que je distribue actuellement mes principales applications autonomes (par exemple: [GEOMS2] (https://sourceforge.net/projects/geoms2/)). – armatita
où trouverais-je le fichier journal? – badNameHere