Python 3 ImportError: Нет модуля с именем 'ConfigParser'

Я пытаюсь pip install пакет MySQL-python, но я получаю ImportError.

Jans-MacBook-Pro:~ jan$ /Library/Frameworks/Python.framework/Versions/3.3/bin/pip-3.3 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 "/var/folders/lf/myf7bjr57_jg7_5c4014bh640000gn/T/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 "/var/folders/lf/myf7bjr57_jg7_5c4014bh640000gn/T/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'

----------------------------------------
Command python setup.py egg_info failed with error code 1 in /var/folders/lf/myf7bjr57_jg7_5c4014bh640000gn/T/pip-build/MySQL-python
Storing complete log in /Users/jan/.pip/pip.log
Jans-MacBook-Pro:~ jan$ 

Любые идеи?

Ответ 1

В Python 3 ConfigParser было переименовано в ConfigParser для соответствия PEP 8. Похоже, что пакет, который вы устанавливаете, не поддерживает Python 3.

Ответ 2

Вместо этого вы можете использовать пакет mysqlclient как замену для MySQL-python. Это вилка MySQL-python с дополнительной поддержкой Python 3.

Мне повезло просто

pip install mysqlclient

в моем python3.4 virtualenv после

sudo apt-get install python3-dev libmysqlclient-dev

который явно специфичен для ubuntu/debian, но я просто хотел поделиться своим успехом:)

Ответ 3

Вот код, который должен работать как в Python 2.x, так и 3.x

Очевидно, вам понадобится модуль six, но почти невозможно писать модули, которые работают в обеих версиях без шести.

try:
    import configparser
except:
    from six.moves import configparser

Ответ 4

MySQL-python не поддерживается на python3, вместо этого вы можете использовать mysqlclient

Если вы находитесь на fedora/centos/Red Hat установите следующий пакет

  1. yum install python3-devel
  2. pip install mysqlclient

Ответ 5

pip install configparser
sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py

Затем попробуйте снова установить MYSQL-python. Это работало для меня

Ответ 6

Если вы используете CentOS, вам нужно использовать

  1. yum install python34-devel.x86_64
  2. yum groupinstall -y 'development tools'
  3. pip3 install mysql-connector
  4. pip install mysqlclient

Ответ 7

Совместимость Python 2/3 для configparser может быть решена только six библиотеками

from six.moves import configparser

Ответ 8

Я получил дальше с Валересом:

pip install configparser sudo cp/usr/lib/python3.6/configparser.py/usr/lib/python3.6/ConfigParser.py Затем попробуйте снова установить MYSQL-python. Это работало для меня

Я бы предложил связать файл, а не копировать его. Он сохраняется для обновления. Я связал файл с каталогом /usr/lib/python3/.

Ответ 9

У меня была такая же проблема. Оказывается, мне нужно было установить python3 devel на мои centos. Во-первых, вам нужно найти пакет, совместимый с вашей системой.

yum search python3 | grep devel

Затем установите пакет как:

yum install -y python3-devel.x86_64

Затем установите mysqlclient из pip

pip install mysqlclient

Ответ 10

brew install mysql

pip3 install mysql прежнему дает "ошибку configparser", и я не знаю, почему это не было исправлено к настоящему времени.

Ответ 11

как насчет проверки используемой версии Python.

import six
if six.PY2:
    import ConfigParser as configparser
else:
    import configparser

Ответ 12

Я запускаю kali linux- Rolling, и я столкнулся с этой проблемой, когда попытался запустить cupp.py в терминале после обновления до python 3.6.0. После некоторых исследований и испытаний я обнаружил, что изменение ConfigParser в configparser сработало для меня, но затем я столкнулся с другой проблемой.

config = configparser.configparser() AttributeError: module 'configparser' has no attribute 'configparser'

После немного большего исследования я понял, что для python 3 ConfigParser изменен на configparser но обратите внимание, что он имеет атрибут ConfigParser().

Ответ 13

Попробуйте это решение, которое отлично работает для меня.

В основном это переустановить/обновить до последней версии mysql от варева, а затем установить mysqlclient или MySQL-Python из global pip3 вместо virtualenv pip3.

Затем mysqlclient доступ к virtualenv и успешно установите mysqlclient или MySQL-Python.

Ответ 14

У меня была такая же проблема на Debian 9 с Python 3.7.1 и Django 2.1.4

Я решил это альтернативным способом:

Сначала я установил следующий пакет Debian

apt-get install python3-mysql.connector

Затем я изменил движок базы данных в settings.py

DATABASES = {
    'default': {
        #'ENGINE': 'django.db.backends.mysql',
        'ENGINE': 'mysql.connector.django',
         ...

С этой конфигурацией я смог успешно запустить "makemigrations" и "migrate".

Пока я не смог найти никаких проблем. Это не продуктивная среда. Я использую это только как локальную среду разработки.

Ответ 15

pip3 install PyMySQL а затем pip3 install mysqlclient. Работал для меня

Ответ 16

Чтобы увидеть, что означает /usr/bin/python, указывающее на

если он указывает на python3 or higher изменить на python2.7

Это должно решить проблему.

Я получал ошибку установки для всех пакетов python. Решение и обсуждение Abe Karplus дали мне подсказку о том, что может быть проблемой. Затем я вспомнил, что я вручную изменил /usr/bin/python с python2.7 на /usr/bin/python3.5, что фактически вызвало проблему. Как только я reverted то же самое. Это было решено.

Ответ 17

Это сработало для меня

cp /usr/local/lib/python3.5/configparser.py /usr/local/lib/python3.5/ConfigParser.py