现在我已经试图将我的python应用程序打包为独立的可执行文件。我一直试图使用py2exe
,但它似乎从来没有工作。不能让py2exe工作
可以说我们有机器A和机器B,我在机器A上构建程序并尝试在机器B上作为可执行文件运行。在试图在机器B上运行的前几次尝试中,它会说FATAL ERROR: Cannot load python library
,但是我认为这是下降到py2exe
过程说1 missing module
全:
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\
然后我看到了这个问题Py2Exe "Missing Modules",发现我需要安装pyreadline
所以我做,那么py2exe
过程didnt返回任何缺失的模块,像这样:
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\
但现在当.exe
运行只输出port>
一个窗口中显示,而应用程序运行的机器上精机B A
这是我的安装文件:
from distutils.core import setup
import py2exe,sys,os
setup(console=['workinghoursGUI.py'])
和在我的计划进口都在Python的标准版本分别是:
from tkinter import *
from tkinter import ttk
import tkinter as tk
import tkinter.messagebox as tkm
import datetime,os,time
IM可能做一些显然是错误的,但我不能工作了什么,有谁知道我可以解决这个问题,或者我只是不得不放弃?
的dist
文件夹看起来是这样的:
与像py2exe软件构建独立应用程序可以是一个丑陋的业务。这是可行的(我已经做了很多次),但是你最终花费了大量的时间修改分发文件夹(比如“手动”复制丢失的东西)。 python和py2exe版本对于这个问题都很重要。还有日志文件的结果(当您运行该软件时,它会显示在远处)。 [continue ...] – armatita
[...继续]我的建议是让你改变你的独立发行版的范例。与其试图使用py2exe打包所有文件,不如使用便携式软件将可移植版本的Python(例如[WinPython](http://winpython.github.io/))与一个.exe或批处理文件分发到应用程序中版。这是我目前正在分发我的主要独立应用程序(例如:[GEOMS2](https://sourceforge.net/projects/geoms2/))。 – armatita
我在哪里可以找到日志文件? – badNameHere