使用 pip 和 Python 3.6 在 Ubuntu 16.04 上安装 mysqlclient 时出错

新手上路,请多包涵

尝试使用 pip + Python 3.6Ubuntu 16.04 Xenial 上安装 mysqlclient 时出现奇怪的错误:

  pip install mysqlclient

输出:

  _mysql.c:40:20: fatal error: Python.h: No such file or directory
 compilation terminated.
 error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

按照 安装要求,我尝试安装所需的库,但到目前为止运气不好。

 sudo apt-get install python3-dev libmysqlclient-dev

有人知道这个问题的解决方法吗?

原文由 Ander 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 407
2 个回答

我发现了问题,似乎在 python3.6 中安装 mysqlclient 需要库 python3.6-dev

只需打开一个终端并运行以下命令:

 sudo apt-get install python3.6-dev libmysqlclient-dev

尝试安装库时可能会出现以下错误:

 Reading state information...
E: Unable to locate package python3.6-dev
E: Couldn't find any package by glob 'python3.6-dev'
E: Couldn't find any package by regex 'python3.6-dev'

如果是这种情况,请先尝试添加以下存储库:

 sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update

这样做之后,您应该能够同时安装 python3.6python3.6-dev 包。

原文由 Ander 发布,翻译遵循 CC BY-SA 3.0 许可协议


我在 python 3.6.3 上安装 mysqlclient 时遇到了问题,所以我降级到版本 3.6.2 并且它可以工作。

 sudo apt-get install build-essential checkinstall
sudo apt-get install libreadline-gplv2-dev  libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
cd /usr/bin
sudo wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
sudo tar xzf Python-3.6.2.tgz
cd Python-3.6.2
sudo ./configure --enable-optimizations
sudo make altinstall

python3.6应该指向3.6.2

 python --version # Python 3.6.2

现在安装mysqlclient

 python3.6 -m pip install mysqlclient

阅读更多

原文由 Bar Horing 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题