MySQLdb с python3.4

Я использую python 3.4 на Lubuntu, который по умолчанию имеет как python2.7, так и python3.4.

Я установил MySQLdb и пытаюсь использовать его в python3.4, используя pip3.

Но простой импорт MySQLdb приводит к этой ошибке

Traceback (most recent call last):
  File "/home/tahseen/workspace/stockproject/test.py", line 18, in <module>
    import MySQLdb as mysql
  File "/usr/local/lib/python3.4/dist-packages/MySQLdb/__init__.py", line 19, in <module>
    import _mysql

ImportError: /usr/local/lib/python3.4/dist-packages/_mysql.so: undefined symbol: _Py_ZeroStruct`

Удивительно, когда я использую python2.7, эта ошибка не появляется


person Tahseen    schedule 19.09.2014    source источник


Ответы (1)


Цитирую другой пост:

«MySQLdb не поддерживает Python 3, но это не единственный драйвер MySQL для Python.

Вы можете попробовать использовать PyMySQL. Это драйвер MySQL на чистом Python, что означает, что он медленнее, но он не требует установки скомпилированного компонента C или библиотек MySQL и файлов заголовков на клиентских машинах. Последняя версия pypi, 0.6.2, поддерживает Python 3.4.

Другой вариант — просто использовать другую систему баз данных, например PostgreSQL».

ссылка: Python 3.4.0 с базой данных MySQL

пс. если вы проверите на https://pypi.python.org/pypi/MySQL-python/1.2.3 вы сможете прочитать, что Python 3.0 будет поддерживаться в будущем выпуске

person Viglia    schedule 11.10.2014
comment
MySQL-python годами заявлял, что будет поддерживать Py3 в будущем выпуске, но так и не сделал этого. Если вам нужна эквивалентная замена API для Py3, взгляните на mysqlclient, который разветвил MySQL-python, добавление поддержки Py3.3+ (при этом также поддерживается 2.7, поэтому вы можете использовать его в качестве замены MySQL-python как на Py2, так и на Py3). В отличие от PyMySQL (и подобного MySQL-python), это модуль расширения Python, поэтому производительность эквивалентна (читай: быстрее и потенциально намного быстрее для многопоточности, поскольку он может выпустить GIL). - person ShadowRanger; 10.11.2016
comment
Это 2020 год, и он до сих пор не поддерживает python3. Судя по всему, проект был заброшен много лет назад. - person nnsense; 28.02.2020