2015-04-22 140 views
3

我得到这个错误fatal error: net-snmp/net-snmp-config.h: No such file or directory。我已经安装了gcc, python-devel, net-snmp, net-snmp-utils, net-snmp-python和其他开发依赖项。在centos上安装python netsnmp 7

CentOS Linux release 7.1.1503 (Core) 
[[email protected] python]$ wget http://sourceforge.net/projects/net-snmp/files/net-snmp/5.5.2/net-snmp-5.5.2.tar.gz 
[[email protected] python]$ pwd 
/tmp/net-snmp-5.5.2/python 
[[email protected] python]$ python setup.py build 
sh: net-snmp-config: command not found 
running build 
running build_py 
creating build 
creating build/lib.linux-x86_64-2.7 
creating build/lib.linux-x86_64-2.7/netsnmp 
copying netsnmp/__init__.py -> build/lib.linux-x86_64-2.7/netsnmp 
copying netsnmp/client.py -> build/lib.linux-x86_64-2.7/netsnmp 
creating build/lib.linux-x86_64-2.7/netsnmp/tests 
copying netsnmp/tests/__init__.py -> build/lib.linux-x86_64-2.7/netsnmp/tests 
copying netsnmp/tests/test.py -> build/lib.linux-x86_64-2.7/netsnmp/tests 
running build_ext 
building 'netsnmp.client_intf' extension 
creating build/temp.linux-x86_64-2.7 
creating build/temp.linux-x86_64-2.7/netsnmp 
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/admin/miniconda/envs/py_env_clink/include/python2.7 -c netsnmp/client_intf.c -o build/temp.linux-x86_64-2.7/netsnmp/client_intf.o 
netsnmp/client_intf.c:9:38: fatal error: net-snmp/net-snmp-config.h: No such file or directory 
#include <net-snmp/net-snmp-config.h> 
compilation terminated. 
error: command 'gcc' failed with exit status 1 
[[email protected] python]$ 

UPDATE1:在netsnmp源代码目录运行./configure && make && make install后,我能够运行python setup.py install。不过,现在我从蟒蛇收到此错误:

>>> import netsnmp 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "netsnmp/__init__.py", line 1, in <module> 
    from client import * 
    File "netsnmp/client.py", line 1, in <module> 
    import client_intf 
ImportError: No module named client_intf 
>>> 

UPDATE2:我的坏!我从netsnmp源代码目录中运行python解释器dir cd /tmp/net-snmp-master/python/这导致我给出了预期的错误,因为python没有使用从egg导入,而是从源代码导入。不管怎么说,做cd ~后,我得到一个新的错误

>>> import netsnmp 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "build/bdist.linux-x86_64/egg/netsnmp/__init__.py", line 1, in <module> 
    # 
    File "build/bdist.linux-x86_64/egg/netsnmp/client.py", line 1, in <module> 
    File "build/bdist.linux-x86_64/egg/netsnmp/client_intf.py", line 7, in <module> 
    File "build/bdist.linux-x86_64/egg/netsnmp/client_intf.py", line 6, in __bootstrap__ 
ImportError: libnetsnmp.so.30: cannot open shared object file: No such file or directory 
>>> exit() 

UPDATE3

[[email protected] ~]# sudo ldconfig 
[[email protected] ~]# sudo ldconfig -p | grep netsnmp 
    libnetsnmptrapd.so.31 (libc6,x86-64) => /lib64/libnetsnmptrapd.so.31 
    libnetsnmptrapd.so (libc6,x86-64) => /lib64/libnetsnmptrapd.so 
    libnetsnmpmibs.so.31 (libc6,x86-64) => /lib64/libnetsnmpmibs.so.31 
    libnetsnmpmibs.so (libc6,x86-64) => /lib64/libnetsnmpmibs.so 
    libnetsnmphelpers.so.31 (libc6,x86-64) => /lib64/libnetsnmphelpers.so.31 
    libnetsnmphelpers.so (libc6,x86-64) => /lib64/libnetsnmphelpers.so 
    libnetsnmpagent.so.31 (libc6,x86-64) => /lib64/libnetsnmpagent.so.31 
    libnetsnmpagent.so (libc6,x86-64) => /lib64/libnetsnmpagent.so 
    libnetsnmp.so.31 (libc6,x86-64) => /lib64/libnetsnmp.so.31 
    libnetsnmp.so (libc6,x86-64) => /lib64/libnetsnmp.so 
[[email protected] ~]# find/-name libnetsnmp.so* 
find: ‘/run/user/1000/gvfs’: Permission denied 
/usr/lib64/libnetsnmp.so 
/usr/lib64/libnetsnmp.so.31 
/usr/lib64/libnetsnmp.so.31.0.2 
/usr/local/lib/libnetsnmp.so.30.0.3 
/usr/local/lib/libnetsnmp.so.30.0.1 
/usr/local/lib/libnetsnmp.so 
/usr/local/lib/libnetsnmp.so.30 
[[email protected] ~]# 

UPDATE4:最后通过运行sudo ldconfig和修改/etc/ld.so.conf.d/libc.conf

[[email protected] ~]# cat /etc/ld.so.conf 
include ld.so.conf.d/*.conf 
[[email protected] ~]# cat > /etc/ld.so.conf.d/libc.conf <<EOF 
> /usr/local/lib 
> EOF 
[[email protected] ~]# ldconfig 
[[email protected] ~]# python 
>>> import netsnmp 
>>> exit() 
[[email protected] ~]# 

回答

2
固定的问题

确保您已安装的net-snmp-devel的。 检查现有的/usr/include/net-snmp/net-snmp-config.h

+0

我刚刚做了'yum install net-snmp-devel'。但即使在那之前,我实际上已经能够通过第一次运行'./configure;来安装python绑定了。使;从netsnmp来源安装'。然而,我现在得到以下错误:'ImportError:No module named client_intf' when I try nenting netsnmp – abarik

+0

更新了问题 – abarik

+0

我不明白'net-snmp-python'的用法是什么?我没有看到任何正在安装的python软件包 – abarik