【问题标题】:Error building MySQL Python module构建 MySQL Python 模块时出错
【发布时间】:2012-02-05 07:26:11
【问题描述】:

我正在尝试为我的 Diskstation 1511 NAS(Intel Atom,嵌入式 Linux 2.6)构建 Python mysql 驱动程序安装。我有 MySQL-python-1.2.3。虽然 MySQL 安装在 NAS 上,但它不包含 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

【问题讨论】:

  • 我认为那是线程安全客户端的东西...在您的 site.cfg 文件中,您可以将 Threadsafe 设置为 false 并查看是否可以消除错误吗?谷歌搜索 mysqlclient_r 没有返回任何有用的信息吗?
  • 是的,这行得通,非常感谢。

标签: python mysql mysql-python


【解决方案1】:

我有上面同样的错误。问题是它缺少一些头文件。一个快速的谷歌显示它需要python-dev,但它是默认的 Python (2.7)。在 python 2.6 中,有一个包python2.6-dev。所以我们需要的是:

$ sudo apt-get install python2.6-dev

【讨论】:

  • 我有Python2.7.2 来解决我使用sudo apt-get install python2.7-dev 的错误工作正常。
猜你喜欢
  • 1970-01-01
  • 2012-11-15
  • 1970-01-01
  • 2016-11-29
  • 2012-01-04
  • 2018-06-06
  • 2022-11-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多