python exe无法正常运行

2024-05-29 04:35:05 发布

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

我下载pyinstaller是为了将python脚本转换为可执行程序。我有一个主脚本((主页.py)当运行时,它将显示一个有两个按钮(按钮1和按钮2)的窗口。如果单击这两个按钮,每个按钮都将运行其相应的python脚本(input1.py或input2.py),该脚本显示一个窗口,用户可以在其中输入要在excel中绘制的数据。在

当我在Spyder通过Anaconda运行脚本时,它们工作正常。但是,当我把我的主脚本(主页.py)进入一个可执行程序并运行它,会出现带有两个按钮的主窗口,但当我单击这两个按钮中的任何一个时,相应的窗口不会出现,程序也会关闭。有人知道为什么会这样吗?我需要像以前那样将input1.py和input2.py转换为.exe程序吗主页.py?在

在我的脚本中,当我需要单击任何按钮时,我会隐藏主窗口并显示新窗口。隐藏和显示是否会导致我的程序无法正常工作,即使它在Spyder中工作?在

主窗口(HOMPGE.py公司)导入和类名

from PyQt5 import QtCore, QtGui, QtWidgets
from input1 import Ui_input1
from input2 import Ui_input2

class Ui_homepage(object):

button1(input1.py)导入和类名

^{pr2}$

button2(input2.py)导入和类名

from PyQt5 import QtCore, QtGui, QtWidgets
import csv, os, subprocess, output2

class Ui_input2(object):

另外,在input1.py和input2.py中,我有一个返回主窗口的按钮函数(主页.py)当单击时,在我导入的函数中

from homepage import Ui_homepage

在结束时主页.py,input1.py和input2.py我有这个导入

if __name__ == "__main__":
    import sys

如果您需要更多的说明或代码,请告诉我。在

编辑1:

我在主窗口中使用的代码(主页.py)这叫按钮1

self.button1.clicked.connect(self.displayWindow1)

def displayWindow1(self):
    self.window = QtWidgets.QMainWindow()
    self.uiInput1 = Ui_input1()
    self.uiInput1.setupUi(self.window)
    self.homepage.hide()
    self.window.showMaximized()

我在主窗口中使用的代码(主页.py)这叫按钮2

self.button2.clicked.connect(self.displayWindow2)

def displayWindow1(self):
    self.window = QtWidgets.QMainWindow()
    self.uiInput2 = Ui_input1()
    self.uiInput2.setupUi(self.window)
    self.homepage.hide()
    self.window.showMaximized()

编辑2

我试着在我改变后运行程序

from input1 import Ui_input1
from input2 import Ui_input2

import input1 
import input2

在输入pyinstaller--onefile--windowed之后,我在命令提示符窗口中遇到了这个错误主页.exe

25160 WARNING: lib not found: MSVCR90.dll dependency of c:\users\bj914e
\appdata\local\continuum\anaconda3\Library\bin\zlib.dll

我在一个警告主页.txt文件

missing module named resource - imported by posix, C:\Users\bj914e\Desktop
\DAMS\DAMS_Version_4\homepage.py
missing module named posix - imported by os, C:\Users\bj914e\Desktop
\DAMS\DAMS_Version_4\homepage.py
missing module named _posixsubprocess - imported by subprocess, C:\Users
\bj914e\Desktop\DAMS\DAMS_Version_4\homepage.py
missing module named org - imported by pickle, C:\Users\bj914e\Desktop
\DAMS\DAMS_Version_4\homepage.py
missing module named readline - imported by cmd, code, pdb, C:\Users
\bj914e\Desktop\DAMS\DAMS_Version_4\homepage.py
excluded module named _frozen_importlib - imported by importlib, 
importlib.abc, C:\Users\bj914e\Desktop\DAMS\DAMS_Version_4\homepage.py
missing module named _frozen_importlib_external - imported by 
importlib._bootstrap, importlib, importlib.abc, C:\Users\bj914e\Desktop
\DAMS\DAMS_Version_4\homepage.py
missing module named _winreg - imported by platform, C:\Users\bj914e
\Desktop\DAMS\DAMS_Version_4\homepage.py
missing module named _scproxy - imported by urllib.request
missing module named java - imported by platform, C:\Users\bj914e\Desktop
\DAMS\DAMS_Version_4\homepage.py
missing module named 'java.lang' - imported by platform, C:\Users\bj914e
\Desktop\DAMS\DAMS_Version_4\homepage.py, xml.sax._exceptions
missing module named vms_lib - imported by platform, C:\Users\bj914e
\Desktop\DAMS\DAMS_Version_4\homepage.py
missing module named termios - imported by tty, C:\Users\bj914e\Desktop
\DAMS\DAMS_Version_4\homepage.py, getpass
missing module named grp - imported by shutil, tarfile, C:\Users\bj914e
\Desktop\DAMS\DAMS_Version_4\homepage.py
missing module named pwd - imported by posixpath, shutil, tarfile, 
http.server, webbrowser, C:\Users\bj914e\Desktop\DAMS\DAMS_Version_4
\homepage.py, netrc, getpass
missing module named _dummy_threading - imported by dummy_threading, 
C:\Users\bj914e\Desktop\DAMS\DAMS_Version_4\homepage.py
missing module named 'org.python' - imported by copy, C:\Users\bj914e
\Desktop\DAMS\DAMS_Version_4\homepage.py, xml.sax
missing module named cPickle - imported by xlsxwriter.compat_collections
missing module named cStringIO - imported by cPickle
missing module named copy_reg - imported by cPickle, cStringIO
missing module named StringIO - imported by xlsxwriter.compatibility

更新:

我能解决我的问题。结果证明这是一个非常简单的解决办法。在我点击其中一个按钮后,程序关闭了,但是一个命令提示窗口出现了,在一毫秒之内消失了,直到在下面的解决方案中我才注意到这一点。解决方案是使用.exe程序将input1.py和input2.py使用的所有数据文件移到dist文件中。在

附言:有些录制程序太慢,无法录制出现和消失的窗口,所以我尝试用我的智能手机(iPhone)摄像头,它能够检测到它。在


Tags: pyselfbyversion按钮usersnamedmodule
2条回答

看起来你遇到了这个issue here(基本上和你一样,但他们使用的是TKinter)。在

建议(link again)将整个文件像模块一样导入到主页.py程序。在

所以改变一下:

from input1 import Ui_input1
from input2 import Ui_input2 

收件人:

^{pr2}$

让我知道结果如何:-)

我有一个非常类似的问题,问题是一个模块丢失。您的exe可能使用pyinstaller未检测到的其他模块。对我来说,一旦我导入十进制模块,我的exe就像一个魅力!当你主页.exe关闭/崩溃,它会告诉您哪个模块丢失。你只有一毫秒的时间看到它,我录下了我的屏幕,放慢了镜头的速度,看到了错误信息。也许是非传统的,但对我有用!在

相关问题 更多 >

    热门问题