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$ 

Есть идеи?

22 ответа

Решение

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

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

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

pip install mysqlclient

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

sudo apt-get install python3-dev libmysqlclient-dev

что явно относится к Ubuntu/ Debian, но я просто хотел поделиться своим успехом:)

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

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

try:
    import configparser
except:
    from six.moves import configparser
pip install configparser
sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py

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

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

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

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

Дополнительная информация:

Python 2x

      import ConfigParser

Python 3x

      import configparser

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

from six.moves import configparser

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

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

Делать pip3 install PyMySQL а потом pip3 install mysqlclient, Работал для меня

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

yum search python3 | grep devel

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

yum install -y python3-devel.x86_64

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

pip install mysqlclient

У меня сработала следующая команда:

sudo python3 -m pip install mysql-connector

Я получил еще с ответом Валереса:

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

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

У меня все еще есть эта проблема, поэтому я захожу в /usr/lib/python3.8 и набираю как sudoer:

cp configparser.py ConfigParser.py

У вас может быть другая версия python, чем 3.8.

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

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

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

После @MaciejNg я попытался сделать копию:

      sudo cp ./env/lib/python3.8/site-packages/configparser.py ./env/lib/python3.8/site-packages/ConfigParser.py

Что не сработало

      configparser.py and ConfigParser.py are identical

Поэтому я переименовал файл:

      sudo mv ./env/lib/python3.8/site-packages/configparser.py ./env/lib/python3.8/site-packages/ConfigParser.py

Я получал ту же ошибку в Mac OS 10, Python 3.7.6 и Django 2.2.7. Я хочу использовать эту возможность, чтобы поделиться тем, что сработало для меня после опробования множества решений.

Шаги

  1. Установлен Connector/Python 8.0.20 для Mac OS по ссылке

  2. Скопируйте текущие зависимости в файл requirements.txt, отключите текущий виртуальный env и удалите его с помощью;

    создайте файл, если он еще не создан с помощью; touch requirements.txt

    скопировать зависимость в файл; python -m pip3 freeze > requirements.txt

    деактивировать и удалить текущую виртуальную среду; deactivate && rm -rf <virtual-env-name>

  3. Создал еще один виртуальный env и активировал его, используя; python -m venv <virtual-env-name> && source <virtual-env-name>/bin/activate

  4. Установите предыдущие зависимости, используя; python -m pip3 install -r requirements.txt

brew install mysql

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

Как насчет проверки версии Python, которую вы используете в первую очередь.

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

Я запускаю 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(),

база на вашей ОС - это Centos, используйте python3, если вы не знаете, где находится configparser.py или ConfigParser.py

  1. pip3 установить configparser

  2. найти / -имя "configparser.py"

  3. cd /usr/local/lib/python3.6/site-packages(в зависимости от вашей среды)

  4. cp configparser.py ConfigParser.py

решил проблему

Пожалуйста, чтобы увидеть, что это /usr/bin/python указывая на

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

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

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

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

cp /usr/local/lib/python3.5/configparser.py /usr/local/lib/python3.5/ConfigParser.py
Другие вопросы по тегам