我在IBM DB2数据库中有一些数据集需要作为度量所需的东西来使用。为了实现这一点,我尝试使用python的export prometheus metrics from SQL -参考此处:https://pypi.org/project/query-exporter/
我已经尝试使用pip3 install ibm_db
内联安装ibm_db模块
当我在命令行中列出我拥有的模块时,我看到它可用:
下面是我的config.yaml,它将建立连接,从数据库中轮询数据,以获得要导出到Prometheus的指标。
在上面对于dsn
的说明中,我也试过用:db2://user:pass@host[:port]/database
、db2+ibm_db://user:pass@host[:port]/database
但最终得到的结果与下面所示的相同。
现在,我尝试使用以下命令执行query-exporter模块:query-exporter ~/py-query-exporter/config.yaml
但最终出现以下错误:
有人能帮我解释一下为什么ibm_db模块没有被识别出来吗?-我不知道这个问题在不同的db模块中是否更广泛另外,我的python版本是:
vijayleom@Vijays-MacBook-Pro ~ % python -V
Python 3.8.11
1条答案
按热度按时间xsuvu9jc1#
始终向问题添加相关事实,而不是作为注解,因为注解不可搜索,很容易被遗漏。
如果您不能成功运行
import ibm_db
,那么任何工具(例如SQLAlchemy或像查询导出器那样使用SQLAlchemy的包)都将无法工作-因为ibm_db支持它们。如果这是一个conda环境,您应该使用conda来安装ibm_db,因为conda比pip更全面地检查依赖关系。有时候,还需要升级pip版本(不管conda如何)。
除此之外,MacOS上的ibm_db还有一些已知的问题,但大多数问题现在都有了解决办法。
其中两个可能特别相关,涉及到与c库的兼容性(
conda install ibm_db
应该找到),有时需要在运行python之前导出环境变量DYLD_LIBRARY_PATH的特定值。找到包含clidriver的目录,默认情况下,它与ibm_db模块一起安装。默认情况下,它将位于python环境的site-packages目录中(您可以使用
pip3 show ibm_db
来查看目录名)。获取clidriver的完全限定目录名,并将/lib附加到它后面,然后使用该值(例如,your_clidriver_path/lib,即:export DYLD_LIBRARY_PATH=your_clidriver_path/lib:$DYLD_LIBRARY_PATH
,然后再运行python代码。如果您无法找到解决方法,请尝试在python ibm_db的github-issues页面上搜索匹配的问题和解决方案,然后在https://github.com/ibmdb/python-ibmdb/issues上为开发人员打开一个票证