virtualenv(python3.4), pip install mysqlclient 报错

virtualenv(python3.4), pip install mysqlclient error

我为 django 1.9 项目创建了 virtualenv。我正在尝试 pip install mysqlclient 或 mysql-python 但它们都给我错误。

pip install mysqlclient

pip install mysql-python

都给我同样的错误信息:

Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/r4/bkv_4t9s4r140pjkgv6lsq8w0000gn/T/pip-build-cdxcssp9/mysqlclient

有什么建议吗!?

尝试运行之前:

Ubuntu:

sudo apt-get install python-dev python3-dev
sudo apt-get install libmysqlclient-dev
pip install pymysql
pip install mysqlclient

在OSX中:

sudo xcodebuild -license accept
brew install mysql-connector-c
  1. 下载 MySQL APT 存储库配置工具(您可以在此处查看更多详细信息:http://dev.mysql.com/downloads/repo/apt/

    wget http://dev.mysql.com/get/mysql-apt-config_0.7.3-1_all.deb
    
  2. 安装 MySQL APT 存储库配置工具

    dpkg -i mysql-apt-config_0.7.3-1_all.deb
    

系统会询问您 select 您要安装的产品和版本。在第一步中,select 服务器和下一步 select mysql-5.6 或 mysql-5.7。然后点击应用。

  1. 更新APT

    apt-get update
    
  2. 安装服务器

    sudo apt-get install mysql-community-server
    
    sudo apt-get install python-dev python3-dev
    sudo apt-get install libmysqlclient-dev
    pip install pymysql
    pip install mysqlclient
    

如果您正在使用 Python 2.x,并且已经安装:

  • MySQL 服务器
  • Python 连接器

那么问题是当你 运行:

Windows:

(your environment) SomePath> pip install mysqlclient 

Mac OS:

$ pip install mysqlclient

实际上它要求为 Python 3.x 安装包而不是 2.x。所以它抛出一个错误。

解决方案是运行:

Windows:

(your environment) SomePath> pip install mysqlclient==1.3.9

Mac OS:

$ pip install mysqlclient==1.3.9

P.S mysqlclient==1.3.9版本是Python 2.x

的最新版本

如果您使用的是 Anaconda(我强烈建议您使用),那么 运行 这两个命令

conda install -c anaconda mysql-connector-python

conda install -c bioconda mysqlclient

这可能是因为您的 mysql_config 坏了。

截至 2019 年,以下是如何 运行 在 MacOS 上顺利 pip install mysqlclient

brew info openssl 并按照底部的命令进行操作

  echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.zshrc
  export LDFLAGS="-L/usr/local/opt/openssl/lib"
  export CPPFLAGS="-I/usr/local/opt/openssl/include"

其他方法:

  • brew install/upgrade/reinstall mysql : 没有为我解决这个问题,但有很好的副作用来确保你的安装是干净的。
  • brew install mysql-connector-c :要完成这项工作,您必须取消链接 mysql,这会破坏您的设置,并且无法解决我的问题。

对于Ubuntu 18.04

sudo apt-get install python-dev python3-dev
sudo apt-get install libmysqlclient-dev
pip install pymysql
pip install mysqlclient

和设置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', 
        'NAME': 'DB_NAME',
        'USER': 'DB_USER',
        'PASSWORD': 'DB_PASSWORD',
        'HOST': 'localhost',   # Or an IP Address that your DB is hosted on
        'PORT': '3306',
    }
}

这适用于 Ubuntu 18.04

sudo apt-get install python3.6-dev 
sudo apt-get install mysql-client 
sudo apt-get install libsqlclient-dev 
sudo apt-get install libssl-dev