尝试“pip install mysqlclient”时出现“OSError:mysql_config not found” - Django

Posted

技术标签:

【中文标题】尝试“pip install mysqlclient”时出现“OSError:mysql_config not found” - Django【英文标题】:"OSError: mysql_config not found" when trying to "pip install mysqlclient" - Django 【发布时间】:2018-05-31 22:10:11 【问题描述】:

我对 Django 和一般的 Web 开发比较陌生。

我正在尝试

pip install mysqlclient

在我的

virtualenv -p python3

将 Django 2.0 连接到 mySQL。但是,我收到了这个错误:

Collecting mysqlclient
Using cached mysqlclient-1.3.12.tar.gz
Complete output from command python setup.py egg_info:
/bin/sh: mysql_config: command not found
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/private/var/folders/43/md5vpqrx0mx8627sq04slbz00000gn/T/pip-build-l8ea3vja/mysqlclient/setup.py", line 17, in <module>
    metadata, options = get_config()
  File "/private/var/folders/43/md5vpqrx0mx8627sq04slbz00000gn/T/pip-build-l8ea3vja/mysqlclient/setup_posix.py", line 44, in get_config
    libs = mysql_config("libs_r")
  File "/private/var/folders/43/md5vpqrx0mx8627sq04slbz00000gn/T/pip-build-l8ea3vja/mysqlclient/setup_posix.py", line 26, in mysql_config
    raise EnvironmentError("%s not found" % (mysql_config.path,))
OSError: mysql_config not found

----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/43/md5vpqrx0mx8627sq04slbz00000gn/T/pip-build-l8ea3vja/mysqlclient/

我已经四处寻找答案几个小时了,是的,我已经检查了 this 和 this,但似乎没有任何效果。

任何帮助将不胜感激!

【问题讨论】:

您已链接到其他问题,但您尚未说明您使用的是哪个操作系统,或者您运行建议的命令时发生了什么。 @Alasdair 我正在运行 MacOS High Sierra(版本 10.13.1)。当我运行时:'sudo apt-get install python-dev python3-dev' 我得到:'sudo: apt-get: command not found' 例如 apt-get 是一些 Linux 发行版(如 Ubuntu 和 Debian)使用的包管理器。在 MacOS 上运行这些命令没有意义。 Unable to install mysqlclient using pip3 on MacOS sierra的可能重复 我检查了上面声称重复的线程,当我运行“brew install mysql-connector-c”时,我收到错误:“-bash: brew: command not found” 【参考方案1】:

python包“mysqlclient”是依赖C系统库来驱动mysql连接的,如果你是ubuntu 16.4,如下:

sudo apt-get install libmysqlclient-dev
sudo pip install mysqlclient

【讨论】:

MySQLdb 是一个 C 扩展,因此依赖于 C 语言库。您可以只使用 pymysql 而不是 MySQLdb,只需执行以下命令:sudo pip install pymysql【参考方案2】:

您应该从克隆 mysqlclient 存储库开始:

git clone https://github.com/PyMySQL/mysqlclient-python

那么你必须得到mysql-connector-c。您可以通过以下方式获得它:

brew install mysql-connector-c

然后在文本编辑器中打开/usr/local/bin/mysql_config

来自 Github issue:

mysql_config 中有如下几行:

# Create options 
libs="-L$pkglibdir"
libs="$libs -l "

应该是:

#Create options 
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"

保存该文件并更改回您下载 repo 的目录。现在打开site.cfg 文件。 取消注释该行(删除#)

#mysql_config = /usr/local/bin/mysql_config

保存并运行:

python3 setup.py install

【讨论】:

谢谢。当我运行:'brew install mysql-connector-c'时,我收到错误:'-bash: brew: command not found' 嗨 Pranjal,好的,我已经下载了 Homebrew,成功运行 'brew install mysql-connector-c',在我的文本编辑器中成功打开了 '/usr/local/bin/mysql_config',但是现在我不确定如何将文件编辑为: libs="-L$pkglibdir" libs="$libs -lmysqlclient -lssl -lcrypto" 任何帮助将不胜感激【参考方案3】:

对于 CentOS,这就是它对我有用的原因:

yum install gcc mysql-devel openssl-devel

#Install library explicitly, otherwise the python3 setup.py install will fail
pip3 install "mysqlclient==2.0.3" --global-option=build_ext --global-option="-L/usr/lib64/mysql/"

【讨论】:

【参考方案4】:

如果在 macOS 中安装 mysqlclient Python 包时收到 OSError: mysql_config not found,那么只需执行以下操作:

brew install mysql-client
export PATH="/usr/local/opt/mysql-client/bin:$PATH"

然后重试。

【讨论】:

以上是关于尝试“pip install mysqlclient”时出现“OSError:mysql_config not found” - Django的主要内容,如果未能解决你的问题,请参考以下文章

尝试在java中的socket客户端程序中捕获多次尝试

如何在 PHP 中限制用户登录尝试

如何处理 Swift 的“尝试”?导致“尝试的结果?未使用”? [复制]

我正在尝试从 pyspark 访问 mysql 表。我正在尝试使用:

尝试从 python 数据帧创建多级标头-尝试 Multiindex.from_product() [重复]

为啥尝试绕行winapi时进程崩溃?