尝试使用 pip + Python 3.6 在 Ubuntu 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
在installation requirements之后,我尝试了安装所需的库,但到目前为止还没有运气。
sudo apt-get install python3-dev libmysqlclient-dev
有人知道此问题的解决方法吗?
答案 0 :(得分:28)
我发现问题,似乎是在 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.6 和 python3.6-dev 软件包。
答案 1 :(得分:3)
我收到此错误
/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto
collect2: error: ld returned 1 exit status
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
1个解决方案
打开新终端并运行此命令
sudo apt-get install libssl-dev
在安装mysqlclient之后
pip install mysqlclient
2解决方案
安装MySQL数据库连接器
我们需要做的第一件事是安装python3-dev。您可以通过运行以下命令来安装python3-dev:
sudo apt-get install python3-dev
一旦安装了python3-dev,我们就可以安装必要的Python和MySQL开发标头和库:
sudo apt-get install python3-dev libmysqlclient-dev
然后,我们将使用pip3从PyPi安装mysqlclient库。由于我们的pip版本指向pip3,因此我们只能使用pip。
pip install mysqlclient
答案 2 :(得分:1)
我在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
答案 3 :(得分:0)
我曾经遇到过同样的问题:
#sudo pip3 install mysqlclient fails with mysql_config not found
sudo apt-get install libmysqlclient-dev
#without pip3 it will not going to work for python3
sudo pip3 install mysqlclient
使用上述方法解决。