Ubuntu_16.04 [SOLVED]: How to connect to MySQL db from python 3 on 16.04

Ubuntu_16.04 [SOLVED]: How to connect to MySQL db from python 3 on 16.04

Home Forums Ubuntu 16.04 Ubuntu_16.04 [SOLVED]: How to connect to MySQL db from python 3 on 16.04

Tagged: , ,

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #36815

    Anonymous

    QuestionQuestion

    I am following this guide so that I can can install the MySQL connector for python 3.

    https://stackoverflow.com/questions/43501080/how-to-connect-to-mysql-db-from-python-3-on-ubuntu-16

    Unfortunately when I typed:

    (env) pip install mysqlclient
    
    Collecting mysqlclient
      Downloading mysqlclient-1.3.12.tar.gz (89kB)
        100% |????????????????????????????????| 92kB 1.4MB/s 
    Building wheels for collected packages: mysqlclient
      Running setup.py bdist_wheel for mysqlclient ... error
      Complete output from command /home/hugh/SAT/env/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-sbgaxask/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpqgsp3qwwpip-wheel- --python-tag cp35:
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-3.5
      copying _mysql_exceptions.py -> build/lib.linux-x86_64-3.5
      creating build/lib.linux-x86_64-3.5/MySQLdb
      copying MySQLdb/__init__.py -> build/lib.linux-x86_64-3.5/MySQLdb
      copying MySQLdb/compat.py -> build/lib.linux-x86_64-3.5/MySQLdb
      copying MySQLdb/connections.py -> build/lib.linux-x86_64-3.5/MySQLdb
      copying MySQLdb/converters.py -> build/lib.linux-x86_64-3.5/MySQLdb
      copying MySQLdb/cursors.py -> build/lib.linux-x86_64-3.5/MySQLdb
      copying MySQLdb/release.py -> build/lib.linux-x86_64-3.5/MySQLdb
      copying MySQLdb/times.py -> build/lib.linux-x86_64-3.5/MySQLdb
      creating build/lib.linux-x86_64-3.5/MySQLdb/constants
      copying MySQLdb/constants/__init__.py -> build/lib.linux-x86_64-3.5/MySQLdb/constants
      copying MySQLdb/constants/CLIENT.py -> build/lib.linux-x86_64-3.5/MySQLdb/constants
      copying MySQLdb/constants/CR.py -> build/lib.linux-x86_64-3.5/MySQLdb/constants
      copying MySQLdb/constants/ER.py -> build/lib.linux-x86_64-3.5/MySQLdb/constants
      copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.linux-x86_64-3.5/MySQLdb/constants
      copying MySQLdb/constants/FLAG.py -> build/lib.linux-x86_64-3.5/MySQLdb/constants
      copying MySQLdb/constants/REFRESH.py -> build/lib.linux-x86_64-3.5/MySQLdb/constants
      running build_ext
      building '_mysql' extension
      creating build/temp.linux-x86_64-3.5
      x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Dversion_info=(1,3,12,'final',0) -D__version__=1.3.12 -I/usr/include/mysql -I/usr/include/python3.5m -I/home/hugh/SAT/env/include/python3.5m -c _mysql.c -o build/temp.linux-x86_64-3.5/_mysql.o
      _mysql.c:32:20: fatal error: Python.h: No such file or directory
      compilation terminated.
      error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    
      ----------------------------------------
      Failed building wheel for mysqlclient
      Running setup.py clean for mysqlclient
    Failed to build mysqlclient
    Installing collected packages: mysqlclient
      Running setup.py install for mysqlclient ... error
        Complete output from command /home/hugh/SAT/env/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-sbgaxask/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-d4xggqn_-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/hugh/SAT/env/include/site/python3.5/mysqlclient:
        running install
        running build
        running build_py
        creating build
        creating build/lib.linux-x86_64-3.5
        copying _mysql_exceptions.py -> build/lib.linux-x86_64-3.5
        creating build/lib.linux-x86_64-3.5/MySQLdb
        copying MySQLdb/__init__.py -> build/lib.linux-x86_64-3.5/MySQLdb
        copying MySQLdb/compat.py -> build/lib.linux-x86_64-3.5/MySQLdb
        copying MySQLdb/connections.py -> build/lib.linux-x86_64-3.5/MySQLdb
        copying MySQLdb/converters.py -> build/lib.linux-x86_64-3.5/MySQLdb
        copying MySQLdb/cursors.py -> build/lib.linux-x86_64-3.5/MySQLdb
        copying MySQLdb/release.py -> build/lib.linux-x86_64-3.5/MySQLdb
        copying MySQLdb/times.py -> build/lib.linux-x86_64-3.5/MySQLdb
        creating build/lib.linux-x86_64-3.5/MySQLdb/constants
        copying MySQLdb/constants/__init__.py -> build/lib.linux-x86_64-3.5/MySQLdb/constants
        copying MySQLdb/constants/CLIENT.py -> build/lib.linux-x86_64-3.5/MySQLdb/constants
        copying MySQLdb/constants/CR.py -> build/lib.linux-x86_64-3.5/MySQLdb/constants
        copying MySQLdb/constants/ER.py -> build/lib.linux-x86_64-3.5/MySQLdb/constants
        copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.linux-x86_64-3.5/MySQLdb/constants
        copying MySQLdb/constants/FLAG.py -> build/lib.linux-x86_64-3.5/MySQLdb/constants
        copying MySQLdb/constants/REFRESH.py -> build/lib.linux-x86_64-3.5/MySQLdb/constants
        running build_ext
        building '_mysql' extension
        creating build/temp.linux-x86_64-3.5
        x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Dversion_info=(1,3,12,'final',0) -D__version__=1.3.12 -I/usr/include/mysql -I/usr/include/python3.5m -I/home/hugh/SAT/env/include/python3.5m -c _mysql.c -o build/temp.linux-x86_64-3.5/_mysql.o
        _mysql.c:32:20: fatal error: Python.h: No such file or directory
        compilation terminated.
        error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    
        ----------------------------------------
    Command "/home/tom/SAT/env/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-sbgaxask/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-d4xggqn_-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/hugh/SAT/env/include/site/python3.5/mysqlclient" failed with error code 1 in /tmp/pip-build-sbgaxask/mysqlclient/
    

    Can you please advise.

    #36816

    Anonymous

    Accepted AnswerAnswer

    You need python development libraries to build python modules:

    sudo apt install python3-dev libpython3-dev
    

    should take care of that for you.

    But the recommended way to add this in Ubuntu would be to use the Ubuntu repositories. Thus, to install mysql bindings for python3, run

    sudo apt install python3-mysqldb
    

    This will install the bindings needed to connect to mysql from Python 3, and ensures that it will be upgraded along with other packages of your system. This is recommended, unless you specifically need a newer version, or the package is not available in the Ubuntu repositories.

    Source: https://askubuntu.com/questions/989965/how-to-connect-to-mysql-db-from-python-3-on-16-04
    Author: vidarlo
    Creative Commons License
    This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Viewing 2 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic.