2014-12-24 35 views
8

我在Ubuntu上成功编译了net-snmp-5.7.3。 :D这是Ubuntu的特定版本:Python 2绑定Net-SNMP错误 - 未定义符号:netsnmp-memdup

Linux loserBox 3.13.0-32-generiC#57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux 

我似乎已成功安装了net-snmp的Python绑定。这包含在net-nsmp下载中,作为其中包含setup.py文件的标题为“Python”的不同文件夹。但是,在运行命令python setup.py test时,我注意到一些问题。我认为这可能没有什么可担心的,所以我继续前进并执行python setup.py install我不确定README文件中说明“python setup.py test(需要本地运行的代理w/config提供)”的含义。所以,这就是为什么我安装了失败的测试或其他东西。无论如何,我不确定这是否有问题。

成功安装net-snmp的python绑定后,我将目录切换回我的桌面并打开了一个交互式python shell。从这里我输入netsnmp模块并收到下面的错误。它几乎看起来像在回溯中引发错误的变量netsnmp_memdup中存在拼写错误。这看起来像是C代码的问题,而不是python。

Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import netsnmp 
/usr/lib/python2.7/dist-packages/pkg_resources.py:1031: UserWarning: 
/home/loser_user/.python-eggs is writable by group/others and vulnerable to attack 
when used with get_resource_filename. Consider a more secure location 
(set with .set_extraction_path or the PYTHON_EGG_CACHE environment variable). 
warnings.warn(msg, UserWarning) 
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: /home/loser_user/.python-eggs/netsnmp_python-1.0a1-py2.7-linux-x86_64.egg- 
tmp/netsnmp/client_intf.so: undefined symbol: netsnmp_memdup 

有谁知道如何解决这个问题?我查看了这个项目的sourceforge邮件列表页面,并搜索了supoort档案,但没有找到任何东西。

感谢您收听疯狂的男人的Python问题。

节日快乐,

user_loser

+0

我在Ubuntu 14.04上遇到同样的问题。 –

回答

5

Alrgihty,感谢我的好朋友纳文,我们已经追查下来,以在5.7.3 Python的NET-SNMP绑定一个实际的错误。

有两种方法解决此问题:

  1. 使用Python绑定中的Net-SNMP 5.7.2
  2. 看到这个承诺我们的NET-SNMP Python库叉(昨天才开始,所以熊与我们联系):https://github.com/fgimian/easysnmp/commit/fa86af977b563f65e7d70243752d48b94a8d5686并在您下载Net-SNMP时复制此内容。
+1

哇,谢谢你的回复! :D读取github上显示diff数据的C代码很有趣。如果我需要再次使用它,我将不得不尝试您的解决方案。我敢打赌,这个信息可以帮助别人在互联网上。快乐的编码。保持冷静。 –

+0

@user_loser:你并不孤单,很高兴听到这个修复 - 我一直坚持过去一个月 - 选项#1为我工作。 – 333kenshin

+0

谢谢你,选项#2工作。 – Konstantin