Installing MySQLdb for python 2.7 returns error

两盒软妹~` 提交于 2021-01-28 01:40:59

问题


pip install MySQL-python-1.2.4b4.tar.gz returns this error on Python 2.7 (ubuntu 18.04):

Can you help me?

    # pip install MySQL-python-1.2.5.zip
    Processing ./MySQL-python-1.2.5.zip
    Building wheels for collected packages: MySQL-python
      Running setup.py bdist_wheel for MySQL-python ... error
      Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-00mbCK-build/setup.py';f=getattr(tokeni                                                                                                 ze, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpePf4                                                                                                 ITpip-wheel- --python-tag cp27:
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-2.7
      copying _mysql_exceptions.py -> build/lib.linux-x86_64-2.7
      creating build/lib.linux-x86_64-2.7/MySQLdb
      copying MySQLdb/__init__.py -> build/lib.linux-x86_64-2.7/MySQLdb
      copying MySQLdb/converters.py -> build/lib.linux-x86_64-2.7/MySQLdb
      copying MySQLdb/connections.py -> build/lib.linux-x86_64-2.7/MySQLdb
      copying MySQLdb/cursors.py -> build/lib.linux-x86_64-2.7/MySQLdb
      copying MySQLdb/release.py -> build/lib.linux-x86_64-2.7/MySQLdb
      copying MySQLdb/times.py -> build/lib.linux-x86_64-2.7/MySQLdb
      creating build/lib.linux-x86_64-2.7/MySQLdb/constants
      copying MySQLdb/constants/__init__.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
      copying MySQLdb/constants/CR.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
      copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
      copying MySQLdb/constants/ER.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
      copying MySQLdb/constants/FLAG.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
      copying MySQLdb/constants/REFRESH.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
      copying MySQLdb/constants/CLIENT.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
      running build_ext
      building '_mysql' extension
      creating build/temp.linux-x86_64-2.7
      x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -f                                                                                                 debug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Dversion_in                                                                                                 fo=(1,2,5,'final',1) -D__version__=1.2.5 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o
      _mysql.c:44:10: fatal error: my_config.h: No such file or directory
       #include "my_config.h"
                ^~~~~~~~~~~~~
      compilation terminated.
      error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

      ----------------------------------------
      Failed building wheel for MySQL-python
      Running setup.py clean for MySQL-python
    Failed to build MySQL-python
    Installing collected packages: MySQL-python
      Running setup.py install for MySQL-python ... error
        Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-00mbCK-build/setup.py';f=getattr(toke                                                                                                 nize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip                                                                                                 -vhjCMt-record/install-record.txt --single-version-externally-managed --compile:
        running install
        running build
        running build_py
        creating build
        creating build/lib.linux-x86_64-2.7
        copying _mysql_exceptions.py -> build/lib.linux-x86_64-2.7
        creating build/lib.linux-x86_64-2.7/MySQLdb
        copying MySQLdb/__init__.py -> build/lib.linux-x86_64-2.7/MySQLdb
        copying MySQLdb/converters.py -> build/lib.linux-x86_64-2.7/MySQLdb
        copying MySQLdb/connections.py -> build/lib.linux-x86_64-2.7/MySQLdb
        copying MySQLdb/cursors.py -> build/lib.linux-x86_64-2.7/MySQLdb
        copying MySQLdb/release.py -> build/lib.linux-x86_64-2.7/MySQLdb
        copying MySQLdb/times.py -> build/lib.linux-x86_64-2.7/MySQLdb
        creating build/lib.linux-x86_64-2.7/MySQLdb/constants
        copying MySQLdb/constants/__init__.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
        copying MySQLdb/constants/CR.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
        copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
        copying MySQLdb/constants/ER.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
        copying MySQLdb/constants/FLAG.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
        copying MySQLdb/constants/REFRESH.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
        copying MySQLdb/constants/CLIENT.py -> build/lib.linux-x86_64-2.7/MySQLdb/constants
        running build_ext
        building '_mysql' extension
        creating build/temp.linux-x86_64-2.7
        x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g                                                                                                  -fdebug-prefix-map=/build/python2.7-3hk45v/python2.7-2.7.15~rc1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Dversion_                                                                                                 info=(1,2,5,'final',1) -D__version__=1.2.5 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o
        _mysql.c:44:10: fatal error: my_config.h: No such file or directory
         #include "my_config.h"
                  ^~~~~~~~~~~~~
        compilation terminated.
        error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

        ----------------------------------------
    Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-00mbCK-build/setup.py';f=getattr(tokenize, 'open', open)(__fi                                                                                                 le__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-vhjCMt-record/install-r                                                                                                 ecord.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-00mbCK-build/

Thanks.


回答1:


If you use:

pip install mysqlclient==1.4.6

instead, then you'll find it works. The mariadb package has changed the way it stores some header files, and the MySQL-python pip package hasn't been updated for many years.

I had the same problem and switching worked for me.



来源:https://stackoverflow.com/questions/56361162/installing-mysqldb-for-python-2-7-returns-error

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!