【问题标题】:"OSError: mysql_config not found" when trying to "pip install mysqlclient" - Django尝试“pip install mysqlclient”时出现“OSError:mysql_config not found” - 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/

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

任何帮助将不胜感激!

【问题讨论】:

  • 您已链接到其他问题,但您尚未说明您使用的是哪个操作系统,或者您运行建议的命令时发生了什么。
  • @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 上运行这些命令没有意义。
  • 我检查了上面声称重复的线程,当我运行“brew install mysql-connector-c”时,我收到错误:“-bash: brew: command not found”

标签: pip virtualenv mysql-python macos-high-sierra


【解决方案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"
    

    然后重试。

    【讨论】:

      猜你喜欢
      • 2020-09-16
      • 2015-06-13
      • 2019-11-06
      • 2011-07-07
      • 2014-08-25
      • 2019-06-23
      • 2018-08-31
      相关资源
      最近更新 更多