Ответ 1
В Python 3 ConfigParser
было переименовано в ConfigParser
для соответствия PEP 8. Похоже, что пакет, который вы устанавливаете, не поддерживает Python 3.
Я пытаюсь 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$
Любые идеи?
В 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
MySQL-python не поддерживается на python3, вместо этого вы можете использовать mysqlclient
Если вы находитесь на fedora/centos/Red Hat
установите следующий пакет
yum install python3-devel
pip install mysqlclient
pip install configparser
sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py
Затем попробуйте снова установить MYSQL-python. Это работало для меня
Если вы используете CentOS, вам нужно использовать
yum install python34-devel.x86_64
yum groupinstall -y 'development tools'
pip3 install mysql-connector
pip install mysqlclient
Совместимость Python 2/3 для configparser
может быть решена только six
библиотеками
from six.moves import configparser
Я получил дальше с Валересом:
pip install configparser sudo cp/usr/lib/python3.6/configparser.py/usr/lib/python3.6/ConfigParser.py Затем попробуйте снова установить MYSQL-python. Это работало для меня
Я бы предложил связать файл, а не копировать его. Он сохраняется для обновления. Я связал файл с каталогом /usr/lib/python3/
.
У меня была такая же проблема. Оказывается, мне нужно было установить python3 devel на мои centos. Во-первых, вам нужно найти пакет, совместимый с вашей системой.
yum search python3 | grep devel
Затем установите пакет как:
yum install -y python3-devel.x86_64
Затем установите mysqlclient из pip
pip install mysqlclient
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()
.
Попробуйте это решение, которое отлично работает для меня.
В основном это переустановить/обновить до последней версии mysql от варева, а затем установить mysqlclient
или MySQL-Python
из global pip3
вместо virtualenv pip3
.
Затем mysqlclient
доступ к virtualenv
и успешно установите mysqlclient
или MySQL-Python
.
У меня была такая же проблема на 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".
Пока я не смог найти никаких проблем. Это не продуктивная среда. Я использую это только как локальную среду разработки.
pip3 install PyMySQL
а затем pip3 install mysqlclient
. Работал для меня
Чтобы увидеть, что означает /usr/bin/python
, указывающее на
если он указывает на python3 or higher
изменить на python2.7
Это должно решить проблему.
Я получал ошибку установки для всех пакетов python. Решение и обсуждение Abe Karplus дали мне подсказку о том, что может быть проблемой.
Затем я вспомнил, что я вручную изменил /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