有没有人在Cygwin上安装MySQLdb for Python?

时间:2009-02-06 16:01:36

标签: python mysql cygwin

我正在尝试在Cygwin上为python安装MySQLdb。不幸的是,当我运行python setup.py build时,我收到以下错误:

$ python setup.py build
/bin/sh: /usr/local/bin/mysql_config: No such file or directory
Traceback (most recent call last):
  File "setup.py", line 16, in <module>
    metadata, options = get_config()
  File "/home/Ben/python/MySQL-python-1.2.2/setup_posix.py", line 43, in get_config
    libs = mysql_config("libs_r")
  File "/home/Ben/python/MySQL-python-1.2.2/setup_posix.py", line 24, in mysql_config
    raise EnvironmentError, "%s not found" % mysql_config.path
EnvironmentError: /usr/local/bin/mysql_config not found

显然我没有安装mysql_config,我猜这是问题所在。这在MySQL的README中提到,但它没有解释如何解决它或如何安装mysql_config。

所以也许这很简单:如何为Cygwin安装mysql_config

或许这比那更难。

仅供参考:我有python 2.5.2和MySQL 5.1.30,在Cygwin下运行。

6 个答案:

答案 0 :(得分:4)

我是怎么做到的:

首先我安装了apt-cyg。有了这个:

# apt-cyg install gcc            # older name
apt-cyg install gcc-core         # as of 2015
apt-cyg install python-setuptools
easy_install pip
pip install -U mysql-python

答案 1 :(得分:3)

首先,安装apt-cyg:

lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg`
install apt-cyg /bin

现在,使用apt-cyg安装mysql-devel:

apt-cyg install libmysqlclient-devel

答案 2 :(得分:2)

你需要mysql-devel,如果它可以用于cygwin,或者你需要从源代码构建mysql。

你最好的选择可能就是自己编译MySQL客户端,以获得编译MySQLdb所需的头文件。请参阅类似的Perl DB驱动程序上的this note

答案 3 :(得分:2)

使用上面的说明构建MySQL之后,您需要执行以下操作来构建和安装MySQLdb:

  1. 下载Python'settingtools'包here(例如:setuptools-0.6c11-py2.6.egg)。你需要这个来运行MySQL-python附带的setup.py。
  2. 使用同一页面上的说明安装setuptools(您只需像运行shell脚本一样运行它)。
  3. 下载MySQL-python here(例如:MySQL-python-1.2.3.tar.gz)。
  4. 展开存档,您将在自述文件中找到安装说明。
  5. 使用README文件中的说明构建并安装MySQL-python。

答案 4 :(得分:2)

尝试pip install mysql-python后得到同样的错误。我有Win7 x64 + Cygwin x86 2.830 + Django 1.5.5 + Python 2.7。

所以我运行了Cygwin设置并下载了libmysqlclient-devel:MySQL数据库客户端库(开发),并且做到了!

答案 5 :(得分:1)

我按照this comment上的说明在Cygwin上安装了MySQL。我不得不使用版本5.1.35,可以从here下载,因为最新版本(5.1.41)无法构建。

这是我使用的命令行:

./ configure -without-libedit -without-readline -without-server CFLAGS = -O2`