关于centos6.9+Python3.6.5+virtualenv环境下,pip install rrdtool之后,导入rrdtool报错如下的问题?
[root@MrYang ~]# python -V
Python 3.6.0
[root@MrYang ~]# python
Python 3.6.0 (default, May 4 2018, 14:54:06)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-18)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import rrdtool
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: /root/.pyenv/versions/env36/lib/python3.6/site-packages/rrdtool.cpython-36m-x86_64-linux-gnu.so: undefined symbol: rrd_flushcached
>>>
解决方法如下:
1、安装依赖
yum install -y gettext libffi pcre glib libpng freetype fontconfig pixman cairo fribidi graphite2 icu4c harfbuzz pango libtiff-devel.x86_64
2、安装rrdtool
yum -y instlal rrdtool
yum -y install rrdtool-devel
#这样安装rrdtool包,会报上面的错误,因此你需要手动编译安装rrdtool
wget https://oss.oetiker.ch/rrdtool/pub/rrdtool-1.5.6.tar.gz
tar zxvf rrdtool-1.5.6.tar.gz
cd rrdtool-1.5.6
./configure --prefix=/usr/local/rrdtool
make && make install
ln -s /usr/local/lib/librrd* /usr/lib/
3、安装Python-rrdtool
pip install psutil
pip install rrdtoo
# 注意:手动编译安装的是CentOS的rrdtool包,而不是Python-rrdtool这个第三方库。当然,你也可以手动编译安装Python-rrdtool,下载链接是Python的官网。
#如有不足之处,敬请各位大神批评指正!