Python Forum
import module error - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: import module error (/thread-16382.html)



import module error - german77 - Feb-26-2019

I want to execute a python script from a bash script. But I cant import the mysql.connector module when running the script from snmpd. If I run the python or the bash script manually it works fine. But when I run it through snmpwalk I got the following error.

Error:
Traceback (most recent call last): File "parser.py", line 3, in <module> import mysql.connector ImportError: No module named 'mysql'
my phyton code "parser.py"
#!/usr/bin/python 
import sys  
import mysql.connector
try:
	cnx = mysql.connector.connect(user='******', password='*****',
								  host='127.0.0.1',
								  database='******')
	cursor = cnx.cursor()
	query = "SELECT `Valor`,`Tipo` FROM `snmp` WHERE `OID`='"+sys.argv[1]+"'"
	imp="0"
	tipo="INTEGER"
	cursor.execute(query)
	for (Valor) in cursor:
		imp=Valor[0]
		tipo=Valor[1]
	print(tipo)
	print(imp)
	cursor.close()
except mysql.connector.Error as err:
		print(-1)
else:
	cnx.close();
my bash script "panel-current"
#!/bin/bash
if [ "$1" = "-g" ]
then
echo $2
echo "STRING"
python /usr/local/bin/parser.py $2
fi
exit 0
snmpd.conf
pass .1.3.6.1.4.1.2020.1 /bin/bash /usr/local/bin/panel-current
I already checked that it runs on any python version 2.7 and 3.5. I think there is a problem with user permissions and the service is not able to load the mysql.connector module. Can anyone tell me how to fix it?


RE: import module error - Larz60+ - Feb-26-2019

The error is telling you that mysql is not installed, or at least not foe the version of python that you are running.
You need to install mysql
first make sure that pip is linked with the proper python:
pip -V
if the version of python matches what you are running, install mysql:
pip install mysql



RE: import module error - german77 - Feb-26-2019

mysql is already installed. And pip is linked to the correct python version. my code does run if I do it manually on every python version my system has. checked with sys.version to make sure the selected one is correct.

But when is used by snmpd the mysql module is always missing. I even tell it to run a specific version of python that I know for sure it has the mysql module installed. but it still missing.


RE: import module error - snippsat - Feb-26-2019

Install for connector is:
pip install mysql-connector-python
(del_env) E:\div_code\del_env
λ pip install mysql-connector-python
Collecting mysql-connector-python
  Downloading .....
Installing collected packages: six, protobuf, mysql-connector-python
Successfully installed mysql-connector-python-8.0.15 protobuf-3.6.1 six-1.12.0

(del_env) E:\div_code\del_env
λ python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import mysql.connector
>>> mysql.connector.__version__
'8.0.15'
Alternative Pure Python MySQL Client PyMySQL.


RE: import module error - german77 - Feb-28-2019

I ended up using sockets instead. Mysql queries had a memory leak on my nodejs server. Thank you anyway. Maybe later I will test if mysql connector was missing