无法安装 apache-airflow-providers-mysql:pkg-config 错误

mas*_*ifu 15 ubuntu debian mysql-python python-3.x airflow

我正在使用 Debian/Ubuntu,并且尝试在我的 Python 虚拟环境中安装 Airflow 提供程序:

\n
$ pip install apache-airflow-providers-mysql\n  error: subprocess-exited-with-error\n\n  \xc3\x97 Getting requirements to build wheel did not run successfully.\n  \xe2\x94\x82 exit code: 1\n  \xe2\x95\xb0\xe2\x94\x80> [24 lines of output]\n      /bin/sh: 1: pkg-config: not found\n      /bin/sh: 1: pkg-config: not found\n      Trying pkg-config --exists mysqlclient\n      Command 'pkg-config --exists mysqlclient' returned non-zero exit status 127.\n      Trying pkg-config --exists mariadb\n      Command 'pkg-config --exists mariadb' returned non-zero exit status 127.\n      Traceback (most recent call last):\n        File "/home/user/airflow/airflow_env/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>\n          main()\n        File "/home/user/airflow/airflow_env/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main\n          json_out['return_val'] = hook(**hook_input['kwargs'])\n        File "/home/user/airflow/airflow_env/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel\n          return hook(config_settings)\n        File "/tmp/pip-build-env-a5nk1xf1/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 341, in get_requires_for_build_wheel\n          return self._get_build_requires(config_settings, requirements=['wheel'])\n        File "/tmp/pip-build-env-a5nk1xf1/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 323, in _get_build_requires\n          self.run_setup()\n        File "/tmp/pip-build-env-a5nk1xf1/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 338, in run_setup\n          exec(code, locals())\n        File "<string>", line 154, in <module>\n        File "<string>", line 48, in get_config_posix\n        File "<string>", line 27, in find_package_name\n      Exception: Can not find valid pkg-config name.\n      Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually\n      [end of output]\n\n  note: This error originates from a subprocess, and is likely not a problem with pip.\nerror: subprocess-exited-with-error\n\n\xc3\x97 Getting requirements to build wheel did not run successfully.\n\xe2\x94\x82 exit code: 1\n\xe2\x95\xb0\xe2\x94\x80> See above for output.\n
Run Code Online (Sandbox Code Playgroud)\n

我期望看到气流连接中的 mysql 提供程序下拉。

\n

uoi*_*a k 17

手动指定 MYSQLCLIENT_CFLAGS 和 MYSQLCLIENT_LDFLAGS 环境变量,请按照以下步骤操作:

  1. 打开终端窗口。

  2. 确定 MySQL 头文件和库的位置。这些位置可能会根据您的 MySQL 安装而有所不同。您可以使用该mysql_config命令来检索此信息。运行以下命令来查找头文件的位置:mysql_config --cflags运行以下命令来查找库的位置:mysql_config --libs记下这些命令的输出,因为您在后续步骤中将需要它们。

  3. 设置 MYSQLCLIENT_CFLAGS 环境变量。将 `` 替换为从命令中获取的路径mysql_config --cflags。运行以下命令:export MYSQLCLIENT_CFLAGS="-I"

  4. 设置 MYSQLCLIENT_LDFLAGS 环境变量。将 `` 替换为从命令中获取的路径mysql_config --libs。运行以下命令:export MYSQLCLIENT_LDFLAGS="-L"注意:如果您的 MySQL 安装包含多个库,请用空格分隔每个库路径。

  5. 现在,当您安装需要 MySQL 客户端库的软件包(例如mysqlclientDjango)时,构建过程将使用指定的 CFLAGS 和 LDFLAGS 值来查找必要的文件。您可以继续进行软件包安装或 Django 设置,指定的环境变量将用于查找 MySQL 客户端库。

通过手动设置MYSQLCLIENT_CFLAGS和MYSQLCLIENT_LDFLAGS环境变量,可以确保在安装或编译过程中使用正确的MySQL头文件和库。

我用这个方法解决了和你一样的问题

  • 也帮助了我。我们可以将 `mysql_config` 的输出替换为变量以避免复制粘贴: `export MYSQLCLIENT_CFLAGS="$(mysql_config --cflags)"` 并对库执行相同的操作 `export MYSQLCLIENT_LDFLAGS="$(mysql_config --libs)" ` (2认同)

Ala*_*ack 7

pkg-config: not found是问题和解决方案的主要提示 - 您缺少构建工具,需要安装它们。

apt-get install pkg-config build-essential libmysqlclient-dev
Run Code Online (Sandbox Code Playgroud)

注意:如果您实际上是在 Docker slim 映像上构建,请参阅:https ://stackoverflow.com/a/77433206/1554386


小智 5

我的电脑是 macbook\xef\xbc\x8c

\n
brew install mysql\n
Run Code Online (Sandbox Code Playgroud)\n

可以解决它

\n

  • 我想答案已经很清楚了! (2认同)