Ошибка атрибута: __введите __ ошибку при попытке выполнить запрос из MySQL

#python #mysql #python-3.x #mysql-connector

#python #mysql #python-3.x #mysql-connector

Вопрос:

Для меня работало следующее. По какой-то причине это больше не так.

 >>> import configparser
>>> from mysql.connector import connect, Error
>>> with open('file.cfg', 'r') as f:
...     config_string = '[s]n'   f.read()
...
>>> config = configparser.ConfigParser()
>>> config.read_string(config_string)
>>> with connect(host=config.get('s','HOST'),user=config.get('s','USER'),password=config.get('s','PASS'),database="db") as connection:
...     with connection.cursor() as cursor:
...             cursor.execute("select dt from tab limit 1")
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: __enter__
>>>
 

mysql_connector-2.2.9-cp37-cp37m-linux_x86_64.whl

Python 3.7.6 (по умолчанию, 26 февраля 2020 года, 20:54:15)

Ответ №1:

Решение:

 pip uninstall mysql-connector-python
pip uninstall mysql-connector
pip install mysql-connector-python
 

Проблема, как я вижу, заключалась в том, что я установил mysql-connector (который устарел) после mysql-connector-python (новая новая версия mysql-connector ).
Тысяч, что делает mysql-connector-python единственную библиотеку в поле, которую может использовать python.

Комментарии:

1. Было бы очень полезно, если бы вы дали некоторый контекст своему ответу. В настоящее время это действительно ответ низкого качества.

2. Возможно, на этапах удаления и установки была установлена новая версия. Таким образом, это может помочь будущим читателям узнать, какие версии теперь установлены, которые устранили вашу проблему.

3. Это было действительно полезно для меня, все работало на моей машине, но когда я должен был создать контейнер, я использовал mysql-connector вместо mysql-connector-python в файле требований.

4. Это было для меня. Я использовал устаревший соединитель. Обновлено до нового, и теперь оно работает!

5. Черт возьми, это сработало! Я запустил свою виртуальную среду с помощью #> source venv/bin / activate, затем выполнил приведенные выше команды и вуаля, это сработало!