【问题标题】:Error Installing mysqlclient on Ubuntu 16.04 using pip and Python 3.6使用 pip 和 Python 3.6 在 Ubuntu 16.04 上安装 mysqlclient 时出错
【发布时间】:2017-02-10 06:18:56
【问题描述】:

尝试使用 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

按照installation requirements,我已经尝试安装所需的库,但到目前为止还没有运气。

sudo apt-get install python3-dev libmysqlclient-dev

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

【问题讨论】:

    标签: python ubuntu python-3.6


    【解决方案1】:

    我发现了问题,好像在 python3.6 中安装 mysqlclient 需要库 python3.6-dev。。 p>

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

    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 软件包。

    【讨论】:

    • 最后尝试了几十种“解决方案”。除了这个没有任何帮助。谢谢!
    • 只需更新python 37的repo和版本sudo apt-get install python3.7-dev libmysqlclient-dev
    【解决方案2】:

    我收到了这个错误

    /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
    

    参考链接: How To Create a Django App and Connect it to a Database

    【讨论】:

      【解决方案3】:

      我在 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
      

      read more

      【讨论】:

      • 我不必降级我的版本,但sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev 中列出的某些软件包显然丢失了,但确实如此。所以谢谢你!
      【解决方案4】:

      我也遇到过同样的问题:

      #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
      

      使用上述方法解决。

      reference link

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-10
        • 2023-03-30
        • 2019-12-27
        • 1970-01-01
        • 1970-01-01
        • 2019-06-18
        相关资源
        最近更新 更多