2014-12-24 10 views
8

Ho compilato correttamente net-snmp-5.7.3 su Ubuntu. : D Questa è la versione specifica di Ubuntu:Python 2 binding Errore Net-SNMP - Simbolo non definito: 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 

mi sembrava di avere successo installato i binding Python per net-snmp troppo. Questo è incluso nel download di net-nsmp come cartella diversa intitolata "Python" con il file setup.py al suo interno. Tuttavia, quando si esegue il comando python setup.py test ho notato alcuni problemi. Ho pensato che questo potesse essere nulla di cui preoccuparsi, quindi sono andato avanti e ho eseguito python setup.py install Non ero sicuro di quali istruzioni intendessero nel file README che dicevano "python setup.py test (richiede un agente locale in esecuzione con configurazione fornita)". Quindi, questo è il motivo per cui l'ho installato con il test fallito o qualcosa del genere. Ad ogni modo, non sono sicuro che questo sia un problema o no.

Dopo aver installato correttamente i collegamenti Python per net-snmp, ho reindirizzato le directory al desktop e ho aperto una shell python interattiva. Da qui ho importato il modulo netsnmp e ho ricevuto l'errore seguente. Sembra quasi che ci sia un errore di ortografia nella variabile netsnmp_memdup che sta lanciando l'errore nel Traceback. Questo sembra un problema con il codice C e non con 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 

Qualcuno sa come risolvere questo problema? Ho cercato la pagina della mailing list su sourceforge per questo progetto e ho cercato gli archivi supoort ma non ho trovato nulla.

Grazie per aver ascoltato i problemi Python di un pazzo.

Buone Feste,

user_loser

+0

Sto avendo lo stesso problema qui su Ubuntu 14.04. –

risposta

5

Alrgihty, grazie al mio buon amico Naveen, abbiamo tracciato questo fino a un bug nei binding Python Net-SNMP nella 5.7.3.

Ci sono due modi per aggirare questo:

  1. Utilizzare i binding Python in Net-SNMP 5.7.2
  2. Vai a questa commit sul nostro forcella della biblioteca Net-SNMP Python (iniziata solo ieri in modo orso con noi): https://github.com/fgimian/easysnmp/commit/fa86af977b563f65e7d70243752d48b94a8d5686 e replicalo nel download di Net-SNMP.
+1

Wow, grazie per la risposta! : D È interessante leggere il codice C su github che mostra i dati diff. Dovrò provare la tua soluzione se mai avrò bisogno di usarlo di nuovo. Scommetto che queste informazioni aiutano qualcun altro su Internet. Buona programmazione. Stai fresco. –

+0

@user_loser: Non sei il solo ad essere contento di sapere di questa correzione - Sono rimasto bloccato per il mese scorso - l'opzione # 1 ha funzionato per me. – 333kenshin

+0

Grazie, l'opzione n. 2 ha funzionato. – Konstantin