gpt4 book ai didi

python-3.x - 命令行或 .exe 中的 Python 程序会出现 MemoryError,但在 Spyder IDE 中运行良好

转载 作者:行者123 更新时间:2023-12-04 10:40:13 27 4
gpt4 key购买 nike

Version: Python 3.7 (Spyder) -- OS: Windows10 -- System: Core i5 (6th gen) + 16gb RAM



我写了一个处理大量数据的程序。以下结构用于实现此目的:

程序说明
  • GUI 界面用作主要功能(类)。在这里弹出一个界面,要求用户输入,使用这个输入进行各种计算,这些计算在不同的函数中指定。
  • 第一个函数是导入函数,在指定的(由用户)文件夹中搜索所有 .wav 文件,并在其中导入这些文件的数据。所有导入的项目都附加 (numpy.append) 到一个大数组。
  • 大数组(对于 20 个文件,大约 2.000.000.000 个数据点)用于计算声音文件的特征。它有这么多数据点的原因是因为 .wav 文件的采样率设置为 78125 个样本/秒,我需要准确计算。
  • 计算后,在指定文件夹中生成 2 个绘图,并且 2 个 csv 也与请求的数据一起存储在该文件夹中。

  • 问题说明
  • 在 spyder 环境中运行 main 函数(程序),完全正常。遍历所有数据并生成输出大约需要 10 分钟。
  • 使用 PyInstaller 将该函数编译为 .exe,工作正常,没有错误,所有依赖项都已导入。然而,当运行程序时,MemoryError 几乎立即弹出(见下图)。

  • Image: error message from command line when executing the exe file

    尝试过的解决方案
  • 通过 CLI 运行 python 脚本,给出相同的错误
  • 运行仅导入 2 个文件的 .exe 程序,可以运行所有文件,但速度非常慢(比通过 spyder 执行的速度慢得多)

  • 问题
  • 为什么spyder有足够的内存可以毫无问题地处理所有数据,但是通过命令行执行.py或执行.exe文件时,总是出现内存错误?
  • 为什么 .exe 或 .py 通过 CL 运行比在 spyder IDE 中慢?

  • 目标

    这个程序应该能够处理公司每台笔记本电脑上的噪音数据(有时也是 8GB 内存)。所以我想找到一种方法让程序在使用过的机器上分配所有可用的 RAM。

    在此先感谢您的帮助!

    最佳答案

    同时,感谢 Axe319,我找到了我的问题的答案。 :

    Spyder IDE 在 64 位版本的 python 上运行,使程序运行流畅,没有任何问题。尽管如此,我的 python 解释器仍然是 python 的 32 位版本。

    解决问题的步骤:

  • 卸载python 32位版本
  • 安装python 64位版本
  • 使用 pip install -packages-
  • 再次安装所有使用过的包
  • 使用 pip install pyinstaller 再次安装 PyInstaller
  • 使用 PyInstaller 将程序编译为 .exe

  • 这一切似乎都在起作用!

    关于python-3.x - 命令行或 .exe 中的 Python 程序会出现 MemoryError,但在 Spyder IDE 中运行良好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59965940/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com