构建MySQL Python模块时出错

3 投票
1 回答
1679 浏览
提问于 2025-04-17 09:47

我正在尝试为我的Diskstation 1511 NAS(使用Intel Atom处理器,运行Linux 2.6嵌入版)安装一个Python的MySQL驱动程序。我手头有MySQL-python-1.2.3版本。虽然NAS上已经安装了MySQL,但没有包含mysql_config这个工具,所以我决定编译一个完整的MySQL安装。

在尝试构建的时候,我收到了以下错误信息(见下文)。希望能得到一些帮助。

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

1 个回答

6

我遇到了和上面一样的错误。问题是缺少了一些头文件。快速在谷歌上查了一下,发现需要安装 python-dev,但这个是针对默认的Python版本(2.7)。如果你用的是Python 2.6,就需要安装一个叫 python2.6-dev 的包。所以我们需要做的是:

$ sudo apt-get install python2.6-dev

撰写回答