安装MySQL-python

70

在我的Ubuntu/Linux系统上尝试安装MySQL-python时,我遇到了以下错误。从下面的内容看起来问题是 sh: mysql_config: not found。请问该怎么办?

rmicro@ubuntu:~$ pip install MySQL-python
Downloading/unpacking MySQL-python
  Downloading MySQL-python-1.2.3.tar.gz (70Kb): 70Kb downloaded
  Running setup.py egg_info for package MySQL-python
    sh: mysql_config: not found
    Traceback (most recent call last):
      File "<string>", line 14, in <module>
      File "/home/rmicro/build/MySQL-python/setup.py", line 15, in <module>
        metadata, options = get_config()
      File "setup_posix.py", line 43, in get_config
        libs = mysql_config("libs_r")
      File "setup_posix.py", line 24, in mysql_config
        raise EnvironmentError("%s not found" % (mysql_config.path,))
    EnvironmentError: mysql_config not found
    Complete output from command python setup.py egg_info:
    sh: mysql_config: not found

Traceback (most recent call last):
  File "<string>", line 14, in <module>
  File "/home/rmicro/build/MySQL-python/setup.py", line 15, in <module>
    metadata, options = get_config()
  File "setup_posix.py", line 43, in get_config
    libs = mysql_config("libs_r")
  File "setup_posix.py", line 24, in mysql_config
    raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found

----------------------------------------
Command python setup.py egg_info failed with error code 1

8个回答

160

在Ubuntu上建议使用发行版存储库。因此,安装python-mysqldb应该很简单:

sudo apt-get install python-mysqldb
如果你想使用 pip 安装,虽然这不是建议的方法但仍然是可能的,可以参考之前别人提出的问题和回答:pip install mysql-python fails with EnvironmentError: mysql_config not found 这里有开发者提供的非常全面的指南:http://mysql-python.blogspot.no/2012/11/is-mysqldb-hard-to-install.html 如果要使用 pip 安装 python-mysqld 的所有先决条件(如果您使用 virtualenv,则需要这样做),请运行此命令:
sudo apt-get install build-essential python-dev libmysqlclient-dev

1
你能解释一下你真正的意思吗? - user618677
我认为他的意思是,如果你将python-mysqldb安装为存储库包,系统将为你处理依赖关系管理,并意识到需要安装libmysqlclient-dev。 - ftartaggia
2
@user618677:sudo apt-get install python-mysqldb - jfs
谢谢大家,它起作用了。很明显我需要学习更多的Ubuntu。 - user618677
1
@zalun,正如我的答案结尾所提到的,如果你想使用pip(在虚拟环境中),你必须手动安装先决条件。 - Glaslos
我也遇到了同样的问题,但是我使用的是Mac OSX。我该如何解决这个问题? - hizbul25

15

你有两个选择,如下所述:


像Glaslos建议的那样使用分发包:

# sudo apt-get install python-mysqldb

在这种情况下,您不能使用virtualenv的no-site-packages选项(默认选项),而必须使用:

# virtualenv --system-site-packages myenv

使用一个干净的虚拟环境并构建自己的Python-mysql包。

首先创建虚拟环境:

# virtualenv myvirtualenv
# source myvirtualenv/bin/activate

然后安装构建依赖项:

# sudo apt-get build-dep python-mysqldb

现在你可以安装python-mysql

# pip install mysql-python

注意:Ubuntu软件包名称为python-mysql*db*,而PyPI软件包名称为python-mysql(没有db


8
yum install mysql-devel

它对我有效。


7
重新阅读错误信息。它说:
sh:mysql_config:未找到
如果您使用的是Ubuntu Natty,请注意,mysql_config属于libmysqlclient-dev包。

3

如果你需要使用Python或Python3与MySQL进行交互,那么你需要这些库。这些库使用了MySQL的C和Python连接器(你还需要安装C库),可以克服mysqldb库的一些限制。

   sudo apt-get install libmysqlclient-dev
   sudo apt-get install python-mysql.connector
   sudo apt-get install python3-mysql.connector

1
  1. 找到文件夹:sudo find / -name "mysql_config"(假设它是"/opt/local/lib/mysql5/bin"

  2. 将其添加到PATH中:export PATH:export PATH=/opt/local/lib/mysql5/bin:$PATH

  3. 重新安装


1

我在Python 3上尝试过这种方法

使用pip安装mysqlclient


0
在 Ubuntu Bionic 机器上,使用 Python3 和 virtualenv,以下命令适用于我:
sudo apt install build-essential python-dev libmysqlclient-dev
sudo apt-get install libssl-dev
pip install mysqlclient

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接