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
установить следующий пакет
yum install python3-devel
pip install mysqlclient
Дополнительная информация:
Python 2x
import ConfigParser
Python 3x
import configparser
Совместимость Python 2/3 для configparser
может быть решена просто six
библиотека
from six.moves import configparser
Если вы используете CentOS, то вам нужно использовать
yum install python34-devel.x86_64
yum groupinstall -y 'development tools'
pip3 install mysql-connector
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. Я хочу использовать эту возможность, чтобы поделиться тем, что сработало для меня после опробования множества решений.
Шаги
Установлен Connector/Python 8.0.20 для Mac OS по ссылке
Скопируйте текущие зависимости в файл requirements.txt, отключите текущий виртуальный env и удалите его с помощью;
создайте файл, если он еще не создан с помощью;
touch requirements.txt
скопировать зависимость в файл;
python -m pip3 freeze > requirements.txt
деактивировать и удалить текущую виртуальную среду;
deactivate && rm -rf <virtual-env-name>
Создал еще один виртуальный env и активировал его, используя;
python -m venv <virtual-env-name> && source <virtual-env-name>/bin/activate
Установите предыдущие зависимости, используя;
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
pip3 установить configparser
найти / -имя "configparser.py"
cd /usr/local/lib/python3.6/site-packages(в зависимости от вашей среды)
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