Python3.2: установка MySQL-python завершается с ошибкой Нет модуля с именем ConfigParser

Я хочу использовать SQLAlchemy с базой данных MySQL. Я создал Engine и попытался подключиться, но получаю следующую ошибку.

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
Engine = create_engine('mysql+mysqldb://dbuser:pass@localhost/mydb')
Base = declarative_base(Engine)

Это терпит неудачу с ошибкой:

File "/usr/local/lib/python3.2/dist-packages/SQLAlchemy-0.8.0b2-py3.2.egg/sqlalchemy/connectors/mysqldb.py", line 57, in dbapi
return __import__('MySQLdb')
ImportError: No module named MySQLdb

В поисках этого я обнаружил, что вам нужно установить MySQLdb для python, чтобы хорошо работать с MySQL. Поэтому попытка установить его с помощью pip-3.2 или easy_install-3.2 не удалась, как показано ниже.

sudo pip-3.2 install MySQL-python
Downloading/unpacking MySQL-python
Running setup.py egg_info for package MySQL-python
Traceback (most recent call last):
  File "<string>", line 16, in <module>
  File "/tmp/pip-build/MySQL-python/setup.py", line 14, in <module>
    from setup_posix import get_config
  File "setup_posix.py", line 2, in <module>
    from ConfigParser import SafeConfigParser
ImportError: No module named ConfigParser
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 16, in <module>
File "/tmp/pip-build/MySQL-python/setup.py", line 14, in <module>
from setup_posix import get_config
 File "setup_posix.py", line 2, in <module>
from ConfigParser import SafeConfigParser
ImportError: No module named ConfigParser

Затем я полагаю, что мне нужно установить configparser, поэтому, когда я пытаюсь это сделать, он также терпит неудачу.

Original exception was:
Traceback (most recent call last):
 File "<string>", line 3, in <module>
 File "/usr/local/lib/python3.2/dist-packages/distribute-0.6.34-py3.2.egg/setuptools/__init__.py", line 2, in <module>
from setuptools.extension import Extension, Library
File "/usr/local/lib/python3.2/dist-packages/distribute-0.6.34-py3.2.egg/setuptools/extension.py", line 2, in <module>
import distutils.core
File "/usr/lib/python3.2/distutils/core.py", line 19, in <module>
from distutils.config import PyPIRCCommand
File "/usr/lib/python3.2/distutils/config.py", line 8, in <module>
from configparser import ConfigParser
 File "configparser.py", line 122

Итак, моя первоначальная проблема заключается в попытке заставить Python работать с MySQL. Но пытаясь решить, что я не могу установить MySQLdb.

РЕДАКТИРОВАНИЕ Следуйте инструкциям @robertklep ниже и установите pymsql3.

sudo pip-3.2 install pymysql3

С уважением,


person lukik    schedule 28.02.2013    source источник


Ответы (2)


MySQLdb не поддерживает Python 3. Попробуйте альтернативу, например PyMySQL (то есть также поддерживается SQLAlchemy).

EDIT: есть также этот проект.

person robertklep    schedule 01.03.2013
comment
Спасибо за это. Вчера потерял целый день. Я вижу, что есть pymysql3 и pymysql_sa, и в нем говорится, что pymysql_sa — это диалект PyMySQL для SQLAlchemy. Так что же мне установить? Думаете, у pymysql_sa больше преимуществ перед pymysql3, учитывая, что я работаю именно с sqlalchemy? - person lukik; 01.03.2013
comment
узнал с трудом. Пытался установить pymysql_sa, и это не удалось. Скорее всего, потому что он несовместим с Python3. Так что да, застрял с pymysql3. Спасибо. - person lukik; 01.03.2013
comment
Я попытался использовать pymysql3 и столкнулся с проблемами, которые, как указано, ошибка в sqlalchemy. У вас есть обходной путь? - person lukik; 03.03.2013

https://www.pythonanywhere.com/wiki/UsingMySQL

pip install --user https://dev.mysql.com/get/Downloads/Connector-Python/mysql-connector-python-1.1.6.tar.gz

Затем обновите файл settings.py, чтобы использовать бэкэнд оракула django, «mysql.connector.django»:

DATABASES = {
    'default': {
        'ENGINE': 'mysql.connector.django',
         ...
person max4ever    schedule 29.04.2014
comment
Попробовав это, я получил django.core.exceptions.ImproperlyConfigured: «mysql.connector.django» не является доступным сервером базы данных. - person Thomas Kimber; 10.08.2015