"mysql.h: No such file or directory" when building MySQL-python

F

francescomoi

Hi.

I'm trying to build 'MySQL-python-1.2.0' on my Linux FC2:
----------------------------------
[ ]# export PATH=$PATH:/usr/local/mysql/bin/
[ ]# export mysqlclient=mysqlclient_r
[ ]# python setup.py clean
[ ]# python setup.py build
running build
running build_py
running build_ext
building '_mysql' extension
creating build/temp.linux-i686-2.3
gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -march=i386
-mcpu=i686 -D_GNU_SOURCE -fPIC -fPIC -I/usr/include/python2.3 -c
_mysql.c -o build/temp.linux-i686-2.3/_mysql.o -I'/usr/include/mysql'
_mysql.c:41:19: mysql.h: No such file or directory
------------------------------------

I don't understand why I get this error message, since I usually build
MySQL+C programs
by using:
gcc -o myprogram -I'/usr/local/mysql/include/mysql'
-L'/usr/local/mysql/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl -lm
myprogram.c

My server configuration:
---------------------------
[ ]# /usr/local/mysql/bin/mysql_config
--cflags [-I'/usr/local/mysql/include/mysql']
--libs [-L'/usr/local/mysql/lib/mysql' -lmysqlclient
-lz -lcrypt -lnsl -lm]
--socket [/tmp/mysql.sock]
--port [3306]
--version [3.23.58]
----------------------------
[ ]# find . -name "mysql.h"
../usr/src/php-4.3.10/ext/mysql/libmysql/mysql.h
../usr/src/mysql-3.23.58/include/mysql.h
../usr/src/mysql-4.1.9/include/mysql.h
../usr/include/mysql/mysql.h
../usr/local/mysql/include/mysql/mysql.h
------------------------------
[ ]# locate libmysqlclient
/usr/src/mysql-3.23.58/libmysql/.libs/libmysqlclient.so
/usr/src/mysql-3.23.58/libmysql/.libs/libmysqlclient.a
/usr/src/mysql-3.23.58/libmysql/.libs/libmysqlclient.so.10
/usr/src/mysql-3.23.58/libmysql/.libs/libmysqlclient.so.10.0.0
/usr/src/mysql-3.23.58/libmysql/.libs/libmysqlclient.lai
/usr/src/mysql-3.23.58/libmysql/.libs/libmysqlclient.la
/usr/src/mysql-3.23.58/libmysql/libmysqlclient.la
/usr/src/mysql-4.1.9/libmysql/.libs/libmysqlclient.so
/usr/src/mysql-4.1.9/libmysql/.libs/libmysqlclient.a
/usr/src/mysql-4.1.9/libmysql/.libs/libmysqlclient.so.14
/usr/src/mysql-4.1.9/libmysql/.libs/libmysqlclient.lai
/usr/src/mysql-4.1.9/libmysql/.libs/libmysqlclient.so.14.0.0
/usr/src/mysql-4.1.9/libmysql/.libs/libmysqlclient.la
/usr/src/mysql-4.1.9/libmysql/libmysqlclient.la
/usr/local/mysql/lib/mysql/libmysqlclient.la
/usr/local/mysql/lib/mysql/libmysqlclient.so.10.0.0
/usr/local/mysql/lib/mysql/libmysqlclient.so
/usr/local/mysql/lib/mysql/libmysqlclient.a
/usr/local/mysql/lib/mysql/libmysqlclient.so.10
 
A

Andy Dustman

I'm trying to build 'MySQL-python-1.2.0' on my Linux FC2: ....
gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -march=i386
-mcpu=i686 -D_GNU_SOURCE -fPIC -fPIC -I/usr/include/python2.3 -c
_mysql.c -o build/temp.linux-i686-2.3/_mysql.o -I'/usr/include/mysql'
_mysql.c:41:19: mysql.h: No such file or directory ....
My server configuration:
---------------------------
[ ]# /usr/local/mysql/bin/mysql_config
--cflags [-I'/usr/local/mysql/include/mysql']
--libs [-L'/usr/local/mysql/lib/mysql' -lmysqlclient
-lz -lcrypt -lnsl -lm]
--socket [/tmp/mysql.sock]
--port [3306]
--version [3.23.58] ....
Any suggestion? Thank you very much.

Fedora's mysql_config puts quotes around the directory names, which
confuses things. Try MySQL-python-1.2.1c1. I don't think this entirely
solves the problem, but I think I know how to fix it for 1.2.1c2. But
try it and report your results here:

https://sourceforge.net/tracker/index.php?func=detail&aid=1146226&group_id=22307&atid=374932
 
F

francescomoi

Thank you Andy for your answer.

I tried by using '1.2.1c1' and '1.2.1c2', but with no success:
---------------
creating build/temp.linux-i686-2.3
gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -march=i386
-mcpu=i686 - D_GNU_SOURCE -fPIC -fPIC -I/usr/include/python2.3 -c
_mysql.c -o build/temp.linu x-i686-2.3/_mysql.o -I'/usr/include/mysql'
_mysql.c:41:19: mysql.h: No such file or directory
--------------------

Finally I decided to copy '/usr/include/mysql/*.*' to my work
directory,
and I managed to build it. But when trying to execute a simple test,
I get this error message:
---------
Traceback (most recent call last):
File "./db.py", line 7, in ?
db = "test")
File "/usr/lib/python2.3/site-packages/MySQLdb/__init__.py", line 66,
in Connect
return Connection(*args, **kwargs)
File "/usr/lib/python2.3/site-packages/MySQLdb/connections.py", line
134, in __init__
super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2002, "Can't connect to local
MySQL server through socket '/var/lib/mysql/mysql.sock' (2)")
-----------------------

Any suggestion?. Regards


Andy said:
I'm trying to build 'MySQL-python-1.2.0' on my Linux FC2: ...
gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -march=i386
-mcpu=i686 -D_GNU_SOURCE -fPIC -fPIC -I/usr/include/python2.3 -c
_mysql.c -o build/temp.linux-i686-2.3/_mysql.o -I'/usr/include/mysql'
_mysql.c:41:19: mysql.h: No such file or directory ...
My server configuration:
---------------------------
[ ]# /usr/local/mysql/bin/mysql_config
--cflags [-I'/usr/local/mysql/include/mysql']
--libs [-L'/usr/local/mysql/lib/mysql' -lmysqlclient
-lz -lcrypt -lnsl -lm]
--socket [/tmp/mysql.sock]
--port [3306]
--version [3.23.58] ...
Any suggestion? Thank you very much.

Fedora's mysql_config puts quotes around the directory names, which
confuses things. Try MySQL-python-1.2.1c1. I don't think this entirely
solves the problem, but I think I know how to fix it for 1.2.1c2. But
try it and report your results here:
https://sourceforge.net/tracker/index.php?func=detail&aid=1146226&group_id=22307&atid=374932
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,534
Members
45,007
Latest member
OrderFitnessKetoCapsules

Latest Threads

Top