pyinstaller打包遇到的问题

pyinstaller打包成exe,在pycharm中代码运行正常,可以使用,转exe运行就报错,烦死了,谁来看看啊 时怎么回事,代码写出来就是不能打包用

img

报错信息。很清楚啊。多少行 出了什么错 调用了一个None属性

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7528603
  • 你也可以参考下这篇文章:pyinstaller打包exe(详细教程)
  • 除此之外, 这篇博客: pyinstaller打包exe的方法中的 简单打包命令 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    1. 在需打包文件所在目录打开命令行,
    2. (优点:打包文件将缩小)或者将需打包的文件拷贝至python安装地址下的Scripts文件夹内,或拷贝至pycharm中项目的虚拟的项目地址下的Scripts文件夹内(C:\Users\Administrator\GUI_\Scripts内),再执行下面步骤3
    3. pyinstaller --clean -F -c -i xxx.ico $file.py$ -p ''$\\GUI_\Lib\site-packages$''(第三方库的地址,或pycharm中项目的虚拟第三方库地址)

    --clean 可以消除上一次打包缓存,防止打包运行exe时出现

    Error loading Python DLL 'D:\PYQT5\Weather\build\WeatherWin\python36.dll'.
    LoadLibrary: 找不到指定的模块

    使用-c而不是-w,是为后期方便抓错误代码-

  • 以下回答来自chatgpt:

    问题解答:

    很高兴能帮助你解决关于pyinstaller打包遇到的问题。请提供以下信息:

    1. 你在使用pyinstaller时遇到的具体报错信息。
    2. 你使用的操作系统版本。
    3. 你使用的Python版本。

    根据你提供的参考资料,我来分别解答一下每一个部分。

    段落0: 使用命令行窗口进入项目的根目录

    根据你提供的信息,使用命令行窗口进入到项目的根目录,对于你的情况,进入到E:\ljl\bank目录。

    段落1: 关于打包图片与.txt等文件

    这一部分提到了对.spec文件的更改和调用资源文件的方法。这些操作可以在你的代码中进行,示例如下:

    import os
    import sys
    import random
    
    def resource_path(relative_path):
        if hasattr(sys, "_MEIPASS"):
            return os.path.join(sys._MEIPASS, relative_path)
        return os.path.join(os.path.abspath("."), relative_path)
    
    # 调用.txt等文件的示例代码
    file_path = resource_path(os.path.join("res", "CH2/trainingDigits/%d_%d.txt" % (random.uniform(0, 9), random.uniform(0, 120))))
    scr.insert('insert', open(file_path).read())
    

    请注意,这段代码需要根据你的实际情况进行修改,确保文件路径和文件名的正确性。

    然后,使用以下命令打包项目:

    pyinstaller -F xxx.spec    # 打包
    pyinstaller -F xxx.py      # 第一次打包
    

    参考博客:点击查看

    段落2: 使用PythonCharm实现

    该部分提供了使用PyCharm的方法来打包项目,使用以下命令在命令行窗口中进行操作:

    pyinstaller -F -w main.py
    

    请注意,这里的main.py是当前路径下被打包的Python文件。

    段落3: 其他注意事项

    这一部分提到了包内文件名与自定义包同名的问题。我们需要将mypkg/aaa.py重命名为mypkg/mypkg.py。然后,在命令行或PyCharm中运行mypkg.py

    这一部分指出了在搜索路径中最先搜索的路径是D:\workspace\pypkgtest\mypkg。如果在此路径下,相对路径中的mypkg.setting语句会解析为pypkgtest/mypkg/mypkg.py,导致自身被import进来,从而运行失败。

    请根据这些信息检查你的代码,并保证路径名和文件名没有冲突。

    如果以上解答不符合你的问题,请提供更多的详细信息,我将尽力帮助你解决问题。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^