无法获取py2ex

2024-04-20 16:12:22 发布

您现在位置:Python中文网/ 问答频道 /正文

很久以来,我一直在尝试将python应用程序打包成一个独立的可执行文件。我一直在尝试使用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进程没有返回任何丢失的模块,如下所示:

^{pr2}$

但是现在在机器B上,当.exe运行时,当应用程序在机器a上正常运行时,只显示输出port>的窗口

这是我的安装文件:

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

我可能做了一些明显的错误,但我不知道什么,有人知道我如何解决这个问题,还是我将不得不放弃?在

dist文件夹如下所示:

dist folder


Tags: tofromimport机器应用程序可执行文件tkinterdist
1条回答
网友
1楼 · 发布于 2024-04-20 16:12:22

我终于用这个问题来解决这个问题了py2exe - generate single executable file

我发现我必须修改我的安装文件,现在看起来像这样:

from distutils.core import setup
import py2exe, sys, os

sys.argv.append('py2exe')
#bundle files set to 2 because its a tkinter app
setup(
    options = {'py2exe': {'bundle_files': 2, 'compressed': True}},
    windows = [{'script': "workinghoursGUI.pyw"}],
    zipfile = None,
)

但是,因为我在代码中使用的是os.path.dirname(os.path.realpath(__file__)),而py2exe不支持__file__,所以我发现自己在这个问题上How do I get the path of the current executed file in Python?,并使用ArtOfWarfare的答案来获得当前路径,即:

^{pr2}$

相关问题 更多 >