精华内容
下载资源
问答
  • 解决pyinstaller打包py文件运行exe闪退等诸多疑难杂症

    千次阅读 多人点赞 2019-08-27 19:21:43
    在打包之前,你需要安装pyinstaller,如果你是使用的虚拟环境,在打包前...这种情况来说一般你的程序比较小(代码比较少),这个时候直接进入到你的要打包的py文件的目录下(或者不进入,直接在pyinstalller命令输...

    在打包之前,你需要安装pyinstaller,如果你是使用的虚拟环境,在打包前需要在命令行里激活你安装了pyinstaller的那个虚拟环境

    在使用pyinstaller打包python程序的时候大概分为两种请况:

    1.要打包的程序为单个py文件:

    这种情况来说一般你的程序比较小(代码比较少),这个时候直接进入到你的要打包的py文件的目录下(或者不进入,直接在pyinstalller命令后输入你这个py文件的地址),使用如下命令:

    pyinstaller test.py

    一般来说如果你的程序只是一些小脚本,没用什么大型的或者是稀有的库的话这样做就够了,等到出现

     

     

    175392 INFO: Building COLLECT COLLECT-00.toc completed successfully.这一行后就说明打包成功了,这个时候会在你的项目目录下成dist和built这两个文件夹,其中built这个文件是pyinstaller打包时临时生成的可以删除, 打包完的exe文件在dist目录下,你只需将dist下所有的文件一起拷贝到别人电脑上就可以用了

     

    2.要打包的文件为多个py文件

    这种情况一般你的代码较多,项目较大,可能你写了一个GUI界面py文件这个文件调用了其他文件的函数什么的,这个时候你需要生成spec文件来打包,这里假设你的要打包的主文件为test.py,首先在命令行中,cd到项目的相对目录下,然后输入:

    pyi-makespec test.py

    之后会在你的当前目录下生成一个test.spec,你可以在pycharm中打开这个文件,里面的内容大概是这样的

     

    你需要把你的除了主文件以外的其他py文件也写到 a = Analysis(['GUI.py'],   的这个列表中,像这样

    Analysis(['GUI.py', 'test1.py', 'E:\\a\\test2.py']

    如果你的其他py文件和你要打包的主文件test.py不在同一个目录,那么你在list中需要输入这个py文件的绝对地址

    如果你的项目调用了一些图片、dll等二进制文件,你也需要将他们打包进去,不然程序无法正常运行,你可以在spec文件中的

    datas这个list中添加,方法和上面那个一样,不过最好填绝对地址,也可以等你项目打包完了在copy到你的那个exe文件的目录下

    (这个种情况,你在程序中调用这些资源的时候最好用相对地址,不然程序到了别人电脑上就找不到地址了),大致只需要配置这些东西啦,其他东西都不是必须的。

    然后在刚刚的命令行中输入:pyinstaller -D test.spec 就开始打包了,在这里-D是打包成一个文件夹,-F是打包成一整个文件(传说打包成一整个文件打包缓慢,容易出错,因此不推荐使用,我也没试过)

    -D, --onedirCreate a one-folder bundle containing an executable (default)
    -F, --onefileCreate a one-file bundled executable.

     

    同理打包完成后可以在dist目录下找到打包好的exe文件。


    可能遇到的问题:

    闪退

    最常见的问题就是闪退,这种错误让人最烦,因为报错都没看到就结束了,想解决都无从下手,之前我还想过用qq截图,当他报错的一瞬间按下截图快捷键,对手速的要求极高,十分考验程序猿的年龄、婚否等等综合素质,然后2分钟后我想了一个简单的方法,首先打开命令行,然后再命令行中输入你的exe文件的地址,像这样:

    然后按回车,这样这个程序会依赖于你的这个命令行的窗口来执行(像容器一样),这样就可以看到报错信息啦!欧!这真的是太酷炫了!

    Not found

    出现这种情况的原因是你在执行你的exe文件的时候遇到了错误,而错误的原因一般有两种找不到

    第一种找不到是环境找不到:假如你的项目里面用了tensorflow等大型的库,那么你在打包完后可能会出现tensorflow的某个东西找不到的情况,这个时候你去你的python的环境下,比如anaconda的是这样的D:\Anaconda\envs\dl\Lib\site-packages(因该在你的python环境下的Lib\site-packages目录下),里面有你这个环境的所有库,这个时候,你只需要把这个目录下的tensorflow的文件夹整个copy到你的exe文件的那个目录下就行了,需要注意的是这样做会把整个库都打包过去,然后造成你的打包后的文件巨大无比,虽然可能你只是用了里面的某一个函数,按道理来说你是可以只把你用的那个函数打包进去就好,但是你需要确保你的路径没问题,对于新手来说这是一个复杂的工作,我没有试过,理论上是可行的,还有一个方法是在代码里尽量使用from ... import ...而不是直接import(比如from os.path import join而不是 import os然后os.path.join这样调用),因为直接import会把那个库都打包进去,而from ...import ... 只会打包那个函数(事实上我试过这种方法,但其实这样做并没有减小我的环境大小,不过大家都说这样可以,也许只是我代码没写好呢)

    第二种找不到就是资源找不到,像你代码里面需要的图像,视频等等资源文件没找到,首先确保你在你代码中调用这些资源的地址是相对地址,然后看那个地址和你那个资源的地址是否一致,没有的话就copy到那个地址就好了,一般来说这种问题不会太难

    打包成功可以运行,但是功能错乱

    这个问题真的是我遇到的最让人无语的一个错误

    我在pycharm里面调试没有问题,但是打包之后按自己写的GUI的按钮出现了功能错乱的情况,我以为是我的pyinstaller出了问题

    然后我把它卸了重装了N次,换了N个版本,还是没有解决,然后我换了台电脑解决了,出现这个问题的原因应该是我的环境出问题了,这个时候我推荐你重新配一个新的项目环境,然后重新打包一次,事实上,在装环境的时候不同的库的安装顺序对环境是有影响的,又也许我在copy那些库文件的时候不小心把环境玩坏了,说出来都是泪,出现这个奇葩的bug网上都找不到第二个,出了问题叫爸爸都没用。

    其他问题

    其他问题直接复制了百度就行了,一下子就能找到答案

     

    如有什么不对的地方希望各位多多指正,有什么不懂的地方也可以在下方评论。

    附上萝莉一枚

     

     

     

    展开全文
  • 以及关于文件的路径问题: 例如Jenny想要进行编码或解码的文件在桌面上, 而且她使用的是widowsXP系统,那么如果文件的名字为01.txt的话, 01.txt的路径就为C:\Documents and Settings\Administrator\桌面\01.txt ...

    from PySide2.QtWidgets import QApplication,QMainWindow,QPushButton,QPlainTextEdit,QMessageBox

    from PySide2.QtUiTools import QUiLoader

    from PySide2.QtCore import QFile

    Rmdiction1 = {'a':'01','b':'02','c':'03','d':'04','e':'05','f':'10','g':'11','h':'12','i':'13','j':'14','k':'15','l':'20','m':'21','n':'22','o':'23','p':'24','q':'25','r':'30','s':'31','t':'32','u':'33','v':'34','w':'35','x':'40','y':'41','z':'42',' ':'43',',':'44','.':'45',':':'50',';':'51','<':'52','>':'53','?':'54','/':'55','[':'0001',']':'0010','{':'0100','}':'1000','-':'0011','':'0111','~':'1111','!':'0101','@':'0110','#':'1001','$':'1011','%':'1010','^':'1100','&':'1101','*':'1111','(':'60',')':'61','=':'62','+':'63','|':'64','`':'65','0':'70','1':'71','2':'72','3':'73','4':'74','5':'75','6':'80','7':'81','8':'82','9':'83','\':'84',''':'85','"':'90'}

    Rmdiction = {value:key for key,value in Rmdiction1.items()}

    def decode(x):

    for i in Rmdiction:

    if i == x:

    print(Rmdiction[i])

    return Rmdiction[i]

    def encode(x1):

    for i1 in Rmdiction1:

    if i1 == x1:

    print(Rmdiction1[i1])

    return Rmdiction1[i1]

    class Codec:

    def _init(self):

    # 从文件中加载UI定义

    qfile_stats = QFile(r'C:\Users\Administrator\Desktop\jsr\程序及数据\ui文件\R编解码.ui')

    qfile_stats.open(QFile.ReadOnly)

    qfile_stats.close()

    # 从 UI 定义中动态 创建一个相应的窗口对象

    # 注意:里面的控件对象也成为窗口对象的属性了

    # 比如 self.ui.button , self.ui.textEdit

    self.ui = QUiLoader().load(qfile_stats)

    self.ui.button.clicked.connect(self.coding)

    self.ui.pushButton.clicked.connect(self.decoding)

    self.ui.pushButton_2.clicked.connect(self.PUSH_BUTTON2)

    self.ui.pushButton_3.clicked.connect(self.PUSH_BUTTON3)

    def coding(self):

    replied = self.ui.textedit.toPlainText()

    ip = self.ui.textedit1.toPlainText()

    message1 = open(replied,'r')

    message2 = message1.read()

    i3 = 0

    receivelist1 = []

    Message = message2.lower()

    MESSAGE = Message.replace('\n','')

    while i3 < len(MESSAGE):

    a1 = encode(MESSAGE[i3])

    receivelist1.append(a1)

    i3 += 1

    if i3 == len(MESSAGE):

    orderedlist = '\n'.join(receivelist1)

    f = open(ip,'w+')

    f.writelines(orderedlist)

    f.close()

    QMessageBox.about(self.ui,'','编码成功')

    def decoding(self):

    replied = self.ui.textedit.toPlainText()

    ip = self.ui.textedit1.toPlainText()

    Filehandle = open(replied,'r')

    n = Filehandle.read()

    Filehandle.close()

    v = n.split('\n')

    i2 = 0

    receivelist = []

    while i2 < len(v):

    a = decode(v[i2])

    receivelist.append(a)

    i2 += 1

    if i2 == len(v):

    orderedlist1 = ''.join(receivelist)

    f = open(ip,'w+')

    f.writelines(orderedlist1)

    f.close()

    QMessageBox.about(self.ui,'','解码成功')

    def PUSH_BUTTON2(self):

    version = '''**********使用说明**********

    此程序可以将英文进行编码操作,对R码数字进行解码操作。

    本程序不支持不使用英文字母的语言,请确保文件的内容正确。

    以及关于文件的路径问题:

    例如Jenny想要进行编码或解码的文件在桌面上,

    而且她使用的是widowsXP系统,那么如果文件的名字为01.txt的话,

    01.txt的路径就为C:\Documents and Settings\Administrator\桌面\01.txt

    (特别提醒:目前只支持txt文件,即记事本文件)'''

    QMessageBox.about(self.ui,'使用说明',version)

    def PUSH_BUTTON3(self):

    instructions = '''

    R编解码版本:1.2 修改时间:2020.2.25 19:44:31.69

    相比1.1版本,此次更新修复、添加了

    1.增强了图形用户界面

    2.删除了编解码时会逐一打印的值对的功能

    3.修复了编解码时文件里字符串空行造成编解码操作出错的情况'''

    QMessageBox.about(self.ui,'版本介绍',instructions)

    app = QApplication([])

    codec =Codec()

    codec.ui.show()

    展开全文
  • 为什么打开py文件闪退!当你安装好python时,你能够在python环境下写语句。python环境有两种措施敞开:第一种措施是找到并敞开python文件夹中的python.exe;第二种措施是Windows系统在搜查输入cmd,进去号召行形式...

    message.gif

    friend.gif

    profile.gif

    boke.gif

    困扰已久的问题--python文件打开方式?为什么打开py文件会闪退!

    当你安装好python时,你能够在python环境下写语句。

    python环境有两种措施敞开:第一种措施是找到并敞开python文件夹中的python.exe;第二种措施是Windows系统在搜查输入cmd,进去号召行形式,输入python(前提是已搭配好环境变量)。python环境有一个个性,即便他的每行输入行前面都有>>>三个大于号,python环境下,你能够输入简短的python号召,并回车即可获得反馈。

    可万一你想写一个自力更生的较大的python文件,能够右键修建txt文档,然后把.txt后缀改为.py。在抉择敞开措施时,抉择IDLE措施,即可编辑,为了得体,能够右键抉择属性,改动敞开措施,抉择IDLE为默认敞开措施,就可双击敞开进去编辑版面了,万一想运行在编辑版面点击f5即可运行。

    注:不能够利用Notepad++,HTML能够利用,然而python文件是不行的!

    有的童鞋想直接运行python文件,能够利用cmd号召行,先切换到要运行的文件路径下,输入python 文件名,即可在号召行窗口打印收获。

    还有的同学直接利用python.exe措施敞开py文件,这时候就会揭示黑色窗口一闪而过,这是因为它厉行号召的速度很快,万一未曾收获留下,就会揭示闪退的情形。针对这种情形,有以下几种敞开措施供童鞋们抉择。

    1、能够利用eclipse工具敞开

    2、直接在py文件后加入一句input()

    3、下载appium/python-client,直接运征途序

    展开全文
  • Python文件是以.py为...py文件打开闪退的解决方法:1、首先找到我们平时编辑python,将文件储存的所在文件夹的位置,尝试下双击,看是否能打开;2、如果打不开或者闪退,可以尝试选择打开方式,选择Python应用程...

    Python文件是以.py为后缀的文件,可以用Python直接运行,但是有的朋友会发现,Python文件打不开了,点击闪退。那么双击py文件闪退怎么办呢?别急,小编现在就为大家带来py文件打开闪退的解决方法。

    py文件打开闪退的解决方法:

    1、首先找到我们平时编辑python后,将文件储存的所在文件夹的位置,尝试下双击,看是否能打开;

    20200414151139_96900.png

    2、如果打不开或者闪退,可以尝试选择打开方式,选择Python应用程序或者文本编译器看看是否能够打开文件。我先尝试了双击,未打开,接着选择打开方式--pthon,还是失败。然后选择了平时的文本编译器Geany,成功打开了命名为comment.py的python文件;

    20200414151227_68854.png

    3、尝试用文本编译器执行该python文件,看看能否运行。结果显示可以成功运行;

    20200414151314_82697.png

    4、尝试在完成后的程序末尾加上函数input(),加入这个函数后,相当于在等待你输入,这是一个还未完结的程序。再选择保存;

    20200414151340_56851.png

    5、退出geany编译器,再次找到该python文件,尝试双击或者选择python程序打开该文件。问题就解决了。

    20200414151355_38390.png

    好了,以上就是小编收集整理的关于双击py文件闪退怎么办的解决方法,希望本篇py文件打开闪退的解决方法能够对你有所帮助。

    展开全文
  • 打开IDLE,对代码进行保存(Ctrl+S),代码都是可以运行的。 但是打开文件就会弹出cmd并闪退,截了...保存后运行.py文件仍然是闪退,不过没有报错,但Run不会,所以就加了input()。 运行.py文件结果如下...
  • 解决终端运行Py闪退

    2015-11-10 23:53:20
    cmd打开文件步骤 打开相应程序步骤 cocos-2d学习常见问题之一
  • 这里写自定义目录标题 py文件为飞机大战小游戏,转成exe后运行闪退,cmd下也不行,求大佬指点
  • 打包完成exe文件在我的电脑上可以完美运行,但是在他的电脑上会闪退。 这是cmd中显示的报错,我因为是第一次打包文件不太清楚具体情况,按说打包好以后各种模块不是都在文件中了吗? ...
  • 双击.py文件出现闪退

    2020-11-17 17:53:01
    首先确认已安装python 在代码最末加入input(),双击,闪退问题解决 print('Hello World!') input() 执行结果
  • 2.在安装anaconda3 201903 64bit,双击任意py文件直接运行都会闪退 ,但在解释器中则可以正常运作。 安装anaconda3时, 没有选择“将anaconda的路径写入环境变量”(安装不推荐); 选择或不选择“注册anaconda...
  • 关联:windows下无前缀直接运行.py文件关联:便携版python无法直接运行python脚本的问题症状:直接运行py脚本发现无法传递参数。在python便携版可正常使用的情况下,python sqlmap.py - u xxx 可正常使用指定py文件...
  • python生成exe文件运行闪退解决方法

    万次阅读 多人点赞 2019-05-11 12:36:01
    python生成exe文件运行闪退解决方法: ** 用python写了一个程序,在python下运行是正常的,但是生成exe文件运行闪退 我当时怀疑是不是脱离的python解释器就运行不了的问题,网上找了一通也没有解决。 1.可能是...
  • 问题通过 bat 脚本运行 py 文件时,终端一闪而过,没能成功运行。查证发现问题出在编码上:首先检查下bat文件编码格式(推荐 notepad++ )打开bat文件 发现 编码格式为 带 BOM头的utf-8 ,在这里不需要 带 BOM 头...
  • python 打包成exe文件后运行闪退

    千次阅读 2020-06-05 08:59:43
    pyinstaller xxx.py 打包成一个需要依赖文件的exe pyinstaller -F xxx.py 打包成一个单独的exe,但是会有黑窗口 pyinstaller -F -w xxx.py去除黑窗口 用控制台运行时如果提示No module named ‘Queue’,则需要...
  • Python 之 .py文件双击闪退解决方案 (全)

    万次阅读 多人点赞 2020-03-15 22:29:32
    3)修改代码时无需频繁更改txt和py后缀,打开文件的时候直接右键选择"Edit with IDLE"(IDLE是安装Python环境时自带的集成开发工具),或者"用记事本打开文件"即可。 相信99%的喷油们已经解决了问题,对于剩下的1%.....
  • 可能某次不小心改了配置文件,导致无法打开jupyter,找了很多方法,都没从根本上解决问题。倒是发现启动的默认目录被改...补充知识:jupyter notebook 闪退打不开,报错ImportError: DLL load failed: 文件或目录损...
  • 关于windows系统py文件闪退问题

    千次阅读 2020-01-22 21:18:38
    关于windows系统py文件闪退问题 系统打开py文件都是用默认python版本打开。 若是用其他版本的python编辑的文件在系统打开时就会闪退。 以上问题可能是python版本导致,只需在环境变量里把需要的python版本放到最前面...
  • 关于双击.py文件闪退的问题

    万次阅读 2017-09-16 14:29:07
    添加上此句,试了一次,真的可以打开了,但再双击又回到闪退的问题。2.师兄说是环境变量的问题。(Win7)右键打开“计算机”的属性设置→高级系统设置→环境变量。在系统变量中的path中,编辑,在末尾加入路径“F:...
  • 做了一个简单的调用进程的程序,应该有一个结果显示在IDE,一个结果显示在...结果命令提示符一打开就闪退。 我打开python文件也是,出现的命令提示符一闪而过。。。 这是哪里的问题? 我的电脑装了python和anaconda3
  •  File "C:\Users\xmhu\AppData\Local\Programs\Python\Python37\lib\site-packages\pyinstaller-3.6-py3.7.egg\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module  exec(bytecode, module.__...
  • py文件秒退原因分析:首先确保电脑里装了python解释器,如果没装是不能运行.py结尾的文件的。附上安装方法。有python解释器以后,需要设置.py文件的打开方式为python.exe。(路径一般是C:\Users\你的用户名\AppData\...
  • 2.进入cmd打包py文件 pyinstaller -F xx.py 生成结果: 图2 成功生成exe文件有 两个文件夹 : dist 、build build中有warn记录文档: 图3 warn记录个人觉得没什么用,仅供参考 3.进入cmd查看exe报错问题 图4...
  • Python:.py文件闪退问题

    千次阅读 2020-05-15 10:32:50
    目前百度也有好多解决方案,大多是从根本上解决。但有些方法操作过后仍没有解决闪退问题。... 具体操作如下: 右键.py文件,选中Edit with IDLE,点击当前版本的python。比如我的电脑上版本是3.8。 文件就可以打开
  • ![图片说明](https://img-ask.csdn.net/upload/202003/27/1585270699_957002.png) ...自己python的版本是3.8 ...自己的电脑是win10的,对方的电脑是win7win10都有 ...但就是运行程序之后会闪退,不知道为什么
  • 同事使用我打包的PY转EXE文件,出现控制台闪退的问题,以下为我的解决思路和解决过程,供和我一样碰到此类问题的小伙伴参考 一、安装pyinstaller 和pywin32 这是我一次打包EXE文件,因而python 环境中没有配置过...
  • 批处理文件bat文件运行python脚本出现闪退问题解决 脚本中有WARNING 解决warning问题可以正常运行python脚本
  • 将 Python 程序打包成.exe 文件 1、PyInstaller 简介 PyInstaller 是一个十分有用的第三方库,可以用来打包 python 应用程序,打包完的程序就可以在没有安装 Python 解释器的机器上运行了。 它能够在 Windows、Linux...
  • 这个py文件用tkinter做GUI,用matplotlib画图。在py源代码编辑窗口按f5是可以正常运行的,一切功能都可以正常运行。这是一个同时到期欧式期权的利润合成工具,我编出来想给别人用的。在网上看了很多把py转exe的方法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,585
精华内容 634
关键字:

py文件运行后闪退