Почему импорт библиотеки Python не работает через NRPE

Я разрабатываю плагин Nrpe на Python.

Когда я пытаюсь выполнить свой код, он хорошо работает на моей машине. Но когда NRPE выполняет его, возникает ошибка: «Нет модуля с именем pycurl».

Я работаю над CentOs6.10 с Python 3.4, и я установил pycurl с простой установкой, путь к pycurl.py - /usr/lib/python3.4/site-packages//usr/lib/python3.4 /site-packages/pycurl.py

И мой PYTHONPATH = ['/ usr / local / bin', '/usr/lib64/python34.zip', '/usr/lib64/python3.4', '/usr/lib64/python3.4/plat-linux' , '/usr/lib64/python3.4/lib-dynload', '/usr/lib64/python3.4/site-packages', '/usr/lib/python3.4/site-packages']

Надеюсь, кто-нибудь может мне помочь?

Спасибо !


person Raihan    schedule 12.03.2020    source источник
comment
Я изменил PYTHONPATH, выполнив sys.path.append (), но я хочу знать, могу ли я избежать этого обходного пути и почему среда имеет такое поведение.   -  person Raihan    schedule 12.03.2020
comment
Какое значение вы добавили? Ваш PYTHONPATH кажется правильным. Как nrpe запускает ваш скрипт?   -  person rolf82    schedule 12.03.2020
comment
Я добавляю полный путь к файлу pycurl.py: sys.append ('/ usr / lib / python3.4 / site-packages / pycurl-7.43.0.5-py3.4-linux-x86_64.egg')   -  person Raihan    schedule 13.03.2020
comment
Скрипт запущен Centreon   -  person Raihan    schedule 13.03.2020


Ответы (1)


Вероятно, вам понадобится что-то вроде: python3 -m pip install pycurl

Вы можете использовать: python3 -m pip install --user pycurl или виртуальную среду.

pycurl не поставляется с питоном. Вы должны установить его с помощью pip из pypi.

person dstromberg    schedule 12.03.2020
comment
Полезно использовать python3 -m pip вместо easy_install или вызывать функцию pip shell-callable. Если вы явно указали свой интерпретатор, вы в значительной степени избавитесь от проблемы установки в один интерпретатор и запуска вашего скрипта (ов) в другом. - person dstromberg; 12.03.2020
comment
Спасибо за ответ, но я предполагаю, что easy_install использует pip? Однако, когда я пытаюсь использовать pip, он дает мне RuntimeError: требуется Python 3.5 или новее. - person Raihan; 13.03.2020
comment
pip - новый конкурент easy_install. Примерно единственный раз, когда я использую easy_install, это установка pip. Если вы вызываете pip с помощью python3.4 -m pip install pycurl, это может помочь. - person dstromberg; 14.03.2020