【问题标题】:Python memory error when memory is available内存可用时出现 Python 内存错误
【发布时间】:2020-04-13 20:57:43
【问题描述】:

我有一个 Python 程序,它可以读取文件行并对其进行分析。该程序有意将许多行读入 RAM。

程序在将一行(作为 str)附加到列表时开始出现 MemoryError。在任务管理器中查看(程序在Windows 10上运行),看到程序内存在1635MB(稳定),机器总内存使用率在50%以下。

我读到Python不限制内存,那可能是什么原因?

技术细节:

我在 Windows 10、64 位 16GB RAM 机器上使用 Python 3.6.5。我从 PowerShell 终端而不是通过 IDE 运行程序。

【问题讨论】:

  • 您正在阅读的文件有多大?发生这种情况时,列表会持续多久?
  • 检查您是否使用 32 位安装的 Python。
  • 将内存错误与总 RAM 匹配并不容易(不带交换)。有许多影响内存使用和限制的幕后细节。接受这样一个事实,即处理大型任务,您迟早会遇到内存错误。
  • 在列表中追加一行(作为str)我很想看看你的代码,你能把它贴出来吗?

标签: python windows memory out-of-memory


【解决方案1】:

我看到程序的内存在1635MB

默认情况下,编译为 32 位的 Windows EXE 具有 2GB 的内存限制,即使在有更多可用内存的 64 位操作系统 SKU 上也是如此。您的容量为 1.6 GB,因此您可能会遇到此限制。

确保您运行的是 64 位版本的 Python.exe。 Python.org 的下载页面默认为 32 位,原因不明。但是如果你浏览到their download page for a given release的底部,你可以找到64位架构的x86-64版本。

【讨论】:

    猜你喜欢
    • 2022-01-12
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2012-05-15
    • 2017-12-12
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多