简体   繁体   English

构建MySQL Python模块时出错

[英]Error building MySQL Python module

I am trying to build a Python mysql driver install for my Diskstation 1511 NAS (Intel Atom, Linux 2.6 embedded). 我正在尝试为我的Diskstation 1511 NAS(Intel Atom,Linux 2.6嵌入式)构建一个Python mysql驱动程序安装。 I have MySQL-python-1.2.3. 我有MySQL-python-1.2.3。 While MySQL is installed on the NAS it did not include the mysql_config utility so compiled a complete MySQL install. 虽然MySQL安装在NAS上,但它没有包含mysql_config实用程序,所以编译完整的MySQL安装。

When attempting to build I get the following error message (see further below). 尝试构建时,我收到以下错误消息(请参阅下面的进一步说明)。 Any help is appreciated. 任何帮助表示赞赏。

DiskStation> python2.6 setup.py build
running build
running build_py
copying MySQLdb/release.py -> build/lib.linux-x86_64-2.6/MySQLdb
running build_ext
building '_mysql' extension
/opt/bin/gcc -g -O2 -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,3,'final',0) -D__version__=1.2.3 -I/usr/local/mysql-src/include/mysql -I/opt/include/python2.6 -c _mysql.c -o build/temp.linux-x86_64-2.6/_mysql.o
In file included from _mysql.c:36:
/usr/local/mysql-src/include/mysql/my_config.h:1063:1: warning: "SIZEOF_OFF_T" redefined
In file included from /opt/include/python2.6/Python.h:8,
                 from pymemcompat.h:10,
                 from _mysql.c:29:
/opt/include/python2.6/pyconfig.h:907:1: warning: this is the location of the previous definition
_mysql.c: In function '_escape_item':
_mysql.c:1050: warning: dereferencing type-punned pointer will break strict-aliasing rules
_mysql.c: In function 'init_mysql':
_mysql.c:2836: warning: dereferencing type-punned pointer will break strict-aliasing rules
_mysql.c:2838: warning: dereferencing type-punned pointer will break strict-aliasing rules
_mysql.c:2840: warning: dereferencing type-punned pointer will break strict-aliasing rules
_mysql.c:2842: warning: dereferencing type-punned pointer will break strict-aliasing rules
/opt/bin/gcc -shared -L/opt/lib -Wl,-rpath,/opt/lib -Wl,-rpath-link,/opt/lib build/temp.linux-x86_64-2.6/_mysql.o -L/usr/syno/mysql/lib/mysql -L/opt/lib -lmysqlclient_r -lz -lpthread -lcrypt -lnsl -lm -lpthread -lpython2.6 -o build/lib.linux-x86_64-2.6/_mysql.so
/opt/lib/gcc/i686-linux-gnu/4.2.1/../../../../i686-linux-gnu/bin/ld: cannot find -lmysqlclient_r
collect2: ld returned 1 exit status
error: command '/opt/bin/gcc' failed with exit status 1

I have the same error above. 我上面有同样的错误。 The problem is that it lacks some of the header files. 问题是它缺少一些头文件。 A quick Google show that it need python-dev , but it is for default Python (2.7). 一个快速的谷歌表明它需要python-dev ,但它是默认的Python(2.7)。 With python 2.6, there is a package python2.6-dev . 使用python 2.6,有一个包python2.6-dev So what we need is: 所以我们需要的是:

$ sudo apt-get install python2.6-dev

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM