【问题标题】:Pandas read_hdf not working on linux server but locally - pythonPandas read_hdf 不在 Linux 服务器上工作,但在本地工作 - python
【发布时间】:2021-12-16 07:47:13
【问题描述】:

我有一些代码可以在我的本地计算机上完美运行,但是当我尝试在 linux 服务器上运行它时(通过 ssh 连接,然后我启动我的 docker 容器),我收到以下错误消息:

LOG:客户端连接与打开的事务发生意外的 EOF [警告] pid 为 49 的 Worker 因信号 4 而被终止

在我的代码中断的那一行,我尝试使用 pandas.read_hdf() 打开一个文件

import pandas as pd
from pathlib import Path

[...]
if Path(path_to_file).is_file():
    result = pd.read_hdf(path_to_file, mode='r', key=keyword)
    [...]

我的服务器上确实有该文件,如果找到该文件(返回 True),我也会检查 Path(path_to_file).is_file()。我不知道为什么它在本地工作但不在服务器上工作。非常感谢任何帮助,如果需要提供更多信息,请告诉我!

【问题讨论】:

  • 您可以比较本地计算机和服务器上的 Pandas 版本,然后将文件传输到您的计算机并尝试在那里读取。
  • 感谢您的回复@Armali,我尝试了这两个选项,但仍然无法正常工作..
  • 所以,如果它在您的本地计算机上仍然不起作用,则该故障与 Pandas 版本无关;这一定是由于文件的内容,并且可能只有在您提供该文件时才有可能获得帮助。
  • 对不起,如果问题不够清楚。它在我的本地计算机上运行良好,但在服务器上,它不起作用。我检查了,该文件在我的本地机器和服务器上是相同的,而且熊猫版本也是相同的。

标签: python pandas linux


【解决方案1】:

一位同事解决了我的问题:Pandas 是通过 pip 安装的。服务器无法完全读取预编译的轮子(可能是由于 CPU 稍有不同)。 Debian 编译他的软件包与 pypi 有点不同,这在我的情况下是有效的。所以我从我的 requirements.txt 中删除了 pandas 并将以下行添加到我的 Dockerfile 中:

RUN apt-get update && \
    apt-get upgrade -y && \
    apt-get install -y build-essential python3-dev python3-pandas python3-pip && \
    apt-get clean -y && \

请注意这里的python3-pandaspython3-pip

另一种选择是编译 pandas,而不是使用轮子,这可以由 pip3 install pandas --no-binary 完成(参见 https://stackoverflow.com/a/38263887/12106282

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 2020-01-25
    • 2023-01-02
    • 2017-02-22
    • 1970-01-01
    • 1970-01-01
    • 2016-11-05
    相关资源
    最近更新 更多