我试图让一个Python脚本在我通过ssh连接到的linux服务器上运行。脚本使用mysqldb。我有我需要的所有其他组件,但当我试图通过setuptools安装mySQLdb,像这样:

python setup.py install

我得到以下与mysql_config命令相关的错误报告。

sh: mysql_config: command not found
Traceback (most recent call last):
  File "setup.py", line 15, in <module>
    metadata, options = get_config()
  File "/usr/lib/python2.5/MySQL-python-1.2.3/setup_posix.py", line 43, in get_config
    libs = mysql_config("libs_r")
  File "/usr/lib/python2.5/MySQL-python-1.2.3/setup_posix.py", line 24, in mysql_config
    raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found

有没有其他人遇到过这个错误,如果是的话,你是如何解决的/我能做什么才能成功安装mysqldb?


当前回答

您需要安装python-dev包:

sudo apt-get install python-dev

其他回答

在MacOS (OS/X) Catalina上,我发现我需要这样做:

 export PATH=$PATH:/usr/local/bin/:/usr/local/mysql-5.7.16-osx10.11-x86_64/bin/

在我的电脑上,mysql命令在/usr/local/bin(来自标准MacOS安装程序,而不是“brew”)。

mySQLdb是mysql的python接口,但它不是mysql本身。显然mySQLdb需要'mysql_config'命令,所以你需要先安装它。

你能确认你是否安装了mysql本身,通过运行“mysql”从shell?这应该给你一个响应,而不是“mysql:命令未找到”。

你用的是哪个linux发行版?Mysql是为大多数linux发行版预先打包的。例如,对于debian / ubuntu,安装mysql非常简单

sudo apt-get install mysql-server

Mysql-config在一个不同的包中,可以从(同样,假设debian / ubuntu)安装:

sudo apt-get install libmysqlclient-dev

如果你使用的是mariadb,将mysql替换掉,然后运行

sudo apt-get install libmariadbclient-dev

参考: https://github.com/JudgeGirl/Judge-sender/issues/4#issuecomment-186542797

我有这个问题,并解决了如果添加一个符号链接到mysql_config。

我用自制软件安装了mysql,并在输出中看到了这一点。

Error: The `brew link` step did not complete successfully

根据你如何得到mysql,它将在不同的地方。在我的例子中,/usr/local/Cellar/mysql 一旦你知道了它的位置,你就应该能够创建一个符号链接,指向python正在寻找它的地方。/usr/local/mysql

这对我很管用。

ln -s /usr/local/Cellar/mysql/<< VERSION >>/bin/mysql_config   /usr/local/mysql/bin/mysql_config

mysql -python包正在使用mysql_config命令来了解主机上的mysql配置。您的主机没有mysql_config命令。

来自dev.mysql.com的MySQL开发库包(MySQL-dev -xxx)提供了该命令和MySQL-python包所需的库。MySQL-devel包可以在下载社区服务器区找到。MySQL开发库包名称以MySQL-devel开头,根据MySQL版本和linux平台的不同而有所不同(例如MySQL- develop -5.5.24-1.linux2.6.x86_64.rpm)。

注意,您不需要安装mysql服务器。

到目前为止,所有解决方案(Linux)都需要sudo或root权限才能安装。 这里有一个解决方案,如果你没有根权限,没有sudo。(no sudo apt install…)

下载libmysqlclient-dev的.deb文件,例如从这个镜像 导航到下载的文件并运行dpkg -x libmysqlclient-dev_<version tag>.deb。这将提取一个名为usr的文件夹。 Symlink ./usr/bin/mysql_config到你的$PATH: ln -s ' pwd ' /usr/bin/mysql_config FOLDER_IN_YOUR_PATH 它现在应该能够找到mysql_config

在Ubuntu 18.04上测试。