python - 尝试在 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,我得到了同样的错误。所以听起来环境中缺少一些东西。
解决方案
尽管在主要的 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 上使用完全相同的代码。
推荐阅读
- typescript - 在 Typescript 中将数组转换为对象实用程序
- flutter - 如何在 Flutter 中阅读 Epub?
- sas - 在 SAS 中使用 %Dropmiss 宏时出错
- javascript - 根据两个属性值对对象数组进行排序
- javascript - 检索按两个子值排序的数据
- javascript - 使用没有 'entry' index.js 的 webpack 插件
- django - 无法在 django 中获取属于 User 的 Profile 对象
- excel - “您为工作表或图表输入了无效名称”,需要更新代码
- json - 如何在角度材料多选中隐藏嵌套选择中未选择的选项项目?
- python - Scrapy 简单的 LinkExtractor 示例不起作用