[英]Pandas read_hdf not working on linux server but locally - python
我有一些代码可以在我的本地计算机上完美运行,但是当我尝试在 linux 服务器上运行它时(通过 ssh 连接,然后启动我的 docker 容器),我收到以下错误消息:
日志:客户端连接上的意外 EOF 与打开的事务 [警告] 由于信号 4,pid 为 49 的工作器被终止
在我的代码中断的那一行,我尝试用 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 是通过 pip 安装的。 服务器无法完全读取预编译的轮子(可能是由于 CPU 稍有不同)。 Debian 编译他的软件包与 pypi 有点不同,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-pandas
和python3-pip
。
另一种选择是编译熊猫,而不是使用轮子,这可以通过pip3 install pandas --no-binary
来完成(参见https://stackoverflow.com/a/38263887/12106282 )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.