Python 2 Bindings Net-SNMP Error — неопределенный символ: netsnmp-memdup

Я успешно скомпилировал net-snmp-5.7.3 на Ubuntu. :D Это конкретная версия Ubuntu:

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

Кажется, я также успешно установил привязки Python для net-snmp. Это включено в загрузку net-nsmp в виде другой папки под названием «Python» с файлом setup.py в ней. Однако при запуске команды python setup.py test я заметил некоторые проблемы. Я подумал, что, возможно, не о чем беспокоиться, поэтому я пошел дальше и выполнил python setup.py install. Я не был уверен, что означают инструкции в файле README, в которых говорится: «тест python setup.py (требуется локально работающий агент с предоставленной конфигурацией)». Вот почему я установил его с неудачным тестом или что-то в этом роде. В любом случае, я не уверен, проблема это или нет.

После успешной установки привязки python для net-snmp я переключил каталоги обратно на рабочий стол и открыл интерактивную оболочку python. Отсюда я импортировал модуль netsnmp и получил следующую ошибку. Похоже, что в переменной netsnmp_memdup есть орфографическая ошибка, которая выдает ошибку в Traceback. Это похоже на проблему с кодом 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 для этого проекта и поискал в архивах поддержки, но ничего не нашел.

Спасибо, что выслушали проблемы с Python от сумасшедшего.

Счастливых праздников,

user_loser


person user_loser    schedule 24.12.2014    source источник
comment
У меня такая же проблема на Ubuntu 14.04.   -  person Fotis Gimian    schedule 23.05.2015


Ответы (1)


Алргихти, благодаря моему хорошему другу Навину, мы проследили это до фактической ошибки в привязках Python Net-SNMP в версии 5.7.3.

Есть два способа обойти это:

  1. Используйте привязки Python в Net-SNMP 5.7.2
  2. См. этот коммит в нашем форке библиотеки Net-SNMP Python (начался только вчера, так что терпите нас): https://github.com/fgimian/easysnmp/commit/fa86af977b563f65e7d70243752d48b94a8d5686 и скопируйте это при загрузке Net-SNMP.
person Fotis Gimian    schedule 24.05.2015
comment
Вау, спасибо за ответ! :D Интересно прочитать код C на github, показывающий данные различий. Мне придется попробовать ваше решение, если мне когда-нибудь понадобится использовать это снова. Бьюсь об заклад, эта информация поможет кому-то еще в Интернете. Удачного кодирования. Не горячись. - person user_loser; 26.05.2015
comment
@user_loser: Вы не одиноки в том, что рады услышать об этом исправлении - я застрял в прошлом месяце - вариант № 1 сработал для меня. - person 333kenshin; 03.06.2015