首页 > 解决方案 > 尝试在 IBM i 上的虚拟环境中 pip install ibm-db 导致错误限制.h

问题描述

我正在尝试将 ibm-db 安装到在 IBM i 上运行 Python 的虚拟环境中。我遇到了关于limits.h的以下异常,没有这样的文件或目录。我发现的所有其他类似问题都在 Linux 或 MacOS 上,所以不知道如何在 IBM i 上解决这个问题。

在此处输入图像描述

我还尝试在没有虚拟环境的情况下在系统级别执行此操作,但遇到了同样的问题。我正在尝试安装 ibm-db 3.0.2 版(这个问题的最新版本),这可能是问题的一部分。如果我列出系统安装的软件包,那么已经安装了 ibm-db 的 2.0.5.12 版本。

我的 IBM i 是 V7R2 版本。

在此处输入图像描述

更新 2021-01-15 @ 1:42PM

这似乎不限于最新版本的 ibm-db。我尝试安装其他几个版本,一直到 2.0.5,我得到了同样的错误。所以听起来环境中缺少一些东西。

标签: pythonpipibm-midrange

解决方案


尽管在主要的 ibm-db 项目中提到了一些 IBM i(或 i5),但它确实没有适当的支持IBM i 运行。(从其他平台连接到IBM i的情况可能仍然有效;我尚未对此进行验证。)如果您想将 ibm-db 与 IBM 的 Python 用于 PASE,您需要使用Kevin Adler 的 fork。请参阅建立这一点的问题。

最直接的方法是通过 RPM(直接通过 yum 或 Access Client Solutions GUI 安装)。看起来您已经安装了最新版本(撰写本文时为 2.0.5.12)。

此外,如果您想使用虚拟环境(这是一个好主意),最好的办法是使用该--system-site-packages选项,以便它找到安装了 RPM 的环境。

最后,如果您没有绑定到 ibm-db,推荐的以PEP-249方式连接的方法是通过 ODBC。现在对 PASE 上的 ODBC 有足够的支持,您实际上可以使用pyodbc开发和测试从 PC 连接到 IBM i的代码,然后在 PASE 上使用完全相同的代码。


推荐阅读