Python MySQLClient 安装失败并显示“元数据生成失败”

Mik*_*son 5 python mysql

好吧,我已经“谷歌搜索”但没有找到答案。基于 Python 的站点(基于其 )的例行更新requirements.txt现在在尝试更新“mysqlclient”时失败,并显示元数据生成失败。问题是为什么。

Lev*_*son 12

Robinson 的答案是正确的,但也可能您忘记安装MySQL 开发标头和库,如下所示:

$ sudo apt-get install default-libmysqlclient-dev
Run Code Online (Sandbox Code Playgroud)

详细信息: https: //pypi.org/project/mysqlclient/


Mik*_*son 6

相关消息正文如下:

\n
Collecting mysqlclient\n  Using cached mysqlclient-2.1.0.tar.gz (87 kB)\n  Preparing metadata (setup.py) ... error\n  error: subprocess-exited-with-error\n  \n  \xc3\x97 python setup.py egg_info did not run successfully.\n  \xe2\x94\x82 exit code: 1\n  \xe2\x95\xb0\xe2\x94\x80> [16 lines of output]\n      /bin/sh: mysql_config: command not found\n      /bin/sh: mariadb_config: command not found\n      /bin/sh: mysql_config: command not found\n      Traceback (most recent call last):\n        File "<string>", line 2, in <module>\n        File "<pip-setuptools-caller>", line 34, in <module>\n        File "/private/var/folders/zv/60vkqgms41v8zg76_n8rntg00000gn/T/pip-install-_nlyaw6p/mysqlclient_a781e05976524422b764a6902ff6fe88/setup.py", line 15, in <module>\n          metadata, options = get_config()\n        File "/private/var/folders/zv/60vkqgms41v8zg76_n8rntg00000gn/T/pip-install-_nlyaw6p/mysqlclient_a781e05976524422b764a6902ff6fe88/setup_posix.py", line 70, in get_config\n          libs = mysql_config("libs")\n        File "/private/var/folders/zv/60vkqgms41v8zg76_n8rntg00000gn/T/pip-install-_nlyaw6p/mysqlclient_a781e05976524422b764a6902ff6fe88/setup_posix.py", line 31, in mysql_config\n          raise OSError("{} not found".format(_mysql_config_path))\n      OSError: mysql_config not found\n      mysql_config --version\n      mariadb_config --version\n      mysql_config --libs\n      [end of output]\n  \n  note: This error originates from a subprocess, and is likely not a problem with pip.\nerror: metadata-generation-failed\n
Run Code Online (Sandbox Code Playgroud)\n

这就是提供线索的原因: mysql_config:找不到命令

\n

我通过找到该命令在我的系统上的位置并将其添加到$PATH这个问题,在我的例子中如下:

\n
export PATH=/usr/local/mysql-5.7.16-osx10.11-x86_64/bin:$PATH\n
Run Code Online (Sandbox Code Playgroud)\n

显然这条消息的含义是在$PATH 上找不到配置mysql 的命令。现在我们知道了。

\n