ImportError: Немає модуля з назвою 'MySQL'


81

Я успішно завантажив Connector / Python для MySQL. Я використовував наступний код в оболонці Python для перевірки мого з'єднання:

import mysql.connector

Я отримав таке повідомлення про помилку:

Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    import mysql.connector
ImportError: No module named 'mysql'

Я не можу зрозуміти, чому MySQL не розпізнається.


1
Чи налаштований python у вашій змінній середовища PATH? Я вважаю, що це необхідно для правильної установки.
devmacrile

На якій ви платформі? Windows?
devmacrile

OS X, я тестував це в моїй оболонці: print (get_python_lib ()), і він повернув /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages
Мелані

print(sys.path) ['/Users/Noah/Desktop/Melanie', '/Users/Noah/Documents', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python35.zip', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/plat-darwin', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages']
Мелані

Ви бачите роз'єм, встановлений у цьому каталозі? З вашої оболонки python виконайте os.listdir("/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages"). А запуск which pythonв терміналі також дає вам цей шлях?
devmacrile

Відповіді:


105

Я стикався з подібною проблемою. Мої дані про середовище - Python 2.7.11 pip 9.0.1 CentOS, випуск 5.11 (Final)

Помилка інтерпретатора python -

>>> import mysql.connector
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named mysql.connector
>>>

Використовуйте pip для пошуку доступного модуля -

$ pip search mysql-connector | grep --color mysql-connector-python



mysql-connector-python-rf (2.2.2)        - MySQL driver written in Python
mysql-connector-python (2.0.4)           - MySQL driver written in Python

Встановіть mysql-connector-python-rf -

$ pip install mysql-connector-python-rf

Перевірити

$ python
Python 2.7.11 (default, Apr 26 2016, 13:18:56)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mysql.connector
>>>

Дякую =)

Для python3 та пізніших версій використовуйте наступну команду: $ pip3 встановіть mysql-connector-python-rf


1
Дякуємо за цю команду "pip install mysql-connector-python-rf". Це вирішило мою проблему.
Ахмед Гад

16
pip install mysql-connectorмені було достатньо.
jorijnsmit

3
Крім того, не називайте свій сценарій python "mysql.py" . Про всяк випадок.
Benji

Про всяк випадок, коли хтось такий німий, як я, для мене потрібен був додатковий крок. Слідуючи порадам у цій відповіді, мені потрібно було вибрати правильний інтерпретатор Python у конфігурації запуску PyCharm (той, що знаходиться у венві, до якого я встановив усі модулі).
серешкін

Дякую. pip search mysql-connector Це дуже корисно
Майкл

36

Використовуйте pip3 install mysql-connector для встановлення Python в упаковці (якщо ви використовуєте Python 3. Для Python 2 ви можете використовувати pip).


31

Може бути проста установка з cli?

pip3 install mysql-connector-python-rf

Назва пакета відрізняється від назви бібліотеки імпорту

Або мій універсальний варіант у коді:

import pip
pip.main(['install','mysql-connector-python-rf'])

Для нової версії pip:

from pip._internal import main
main(['install','mysql-connector-python-rf'])

Краще - встановити необхідні модулі під час запуску установки python (якщо їх багато)


1
Це дає мені довгу, червону і страшну помилку. Відповідь @ ilexcel спрацювала чудово.
Генрік

27

Дурною помилкою, яку я зробив, було те, що я залишився mysql.pyв тому самому режимі. Спробуйте перейменувати mysql.pyна інше ім'я, тому pythonне розглядайте це як модуль.


спробуйте виділити ключові слова та чітко
визначтесь

1
У мене була та ж помилка. Я голосую за цю відповідь, тому що саме це відбувалося зі мною. мій скрипт з назвою mysql.py і, мабуть, це заборонено. Я змінився на conecta.py, і це спрацювало.
Філіпе

1
Блін! Це має бути прийнятою відповіддю! Дякую!
Себастьян

Дуже дякую. Це вирішило мою проблему, будь ласка, не використовуйте своє ім’я файлу mysql.py
Zia

Це спрацювало для мене після випробування всіх попередніх рішень. Thx
Jakub Ujvvary

19

Я спробував усі відповіді, але не працював для мене. Це проблема версії python, врешті-решт, я зрозумів, що скриптам python 3 потрібна явна команда pip для python 3, принаймні на ubuntu 18.

python3 -m pip install mysql-connector

4

Спробуйте цей бутон

sudo wget http://cdn.mysql.com//Downloads/Connector-Python/mysql-connector-python-2.1.3.tar.gz

gunzip mysql-connector-python-2.1.3.tar.gz

tar xf mysql-connector-python-2.1.3.tar

cd mysql-connector-python-2.1.3

sudo python3 setup.py install

3

лише примітка, я щойно встановив mysql на сервері ubuntu 16.04. Я спробував різні варіанти в такому порядку:

  • використання пакету з репозиторію sudo apt-get install python-mysqldb: був встановлений правильно, але на жаль, python повернувсяImportError: No module named 'mysql'
  • з допомогою пакета Ubuntu з Mysql: wget http://dev.mysql.com/get/Downloads/Connector-Python/mysql-connector-python_2.1.4-1ubuntu16.04_all.deb. Правильно встановлено sudo dpckg -i package_name, але python повернув ту саму помилку.
  • за допомогою файлу tar.gz, встановлення за допомогою python, працювало нормально.
    • wget http://dev.mysql.com/get/Downloads/Connector-Python/mysql-connector-python-2.1.6.tar.gz (використовувався 2.1.4 на той час)
    • tar -xf mysql-connector-python-2.1.6.tar.gz
    • cd mysql-connector-python-2.1.6/
    • sudo python3 setup.py install

Не досліджував, чому перші два зазнали невдачі, можливо, спробуйте пізніше. Сподіваюся, це комусь допомагає.


Крістіане - дякую за це, чи можете Ви детальніше розказати про рішення (я вважаю файл tar.gz), яке працювало для Вас? У мене така ж проблема, але у третьому варіанті не вистачає деталей. Дякую!
elPastor

вибачте, я щойно прочитав ваш коментар. Я залишив робоче місце, де цим займався. Провів швидкий тест на віртуальній машині, яка, здавалося, працювала, див. Оновлену відповідь
nihilis

3

Вам потрібно використовувати анаконду для управління залежностями середовища python. Роз'єм MySQL можна встановити за допомогою програми встановлення conda

conda install -c anaconda mysql-connector-python

Anaconda є добре прийнятим менеджером залежностей Python. Будь ласка, коментуйте, якщо це неправда.
акшат такар

2

Я виявив, що рішення @ gdxn96 працює для мене, але з 1 зміною.

sudo wget http://cdn.mysql.com//Downloads/Connector-Python/mysql-connector-python-2.1.3.tar.gz
tar -zxvf mysql-connector-python-2.1.3.tar
cd mysql-connector-python-2.1.3
sudo python3 setup.py install


1

Я знайшов ще одну причину: якщо шлях до файлу програми містить пробіл або спеціальні символи, ви отримаєте цю помилку.


1

Ця проблема була для мене чумою !!! 100% рішення полягає в тому, щоб забути про використання модуля mysql: import mysql.connector , замість цього використовуйте pymysql через import pymysql. Я встановив його за інструкцією: python3 -m pip install PyMySQL

внесено зміни до: 1. Імпорту оператора 2. З’єднувача 3. Курсора

Після цього все працювало як шарм. Сподіваюся, це допомагає!


Ви можете, будь ласка, перелічити внесені вами зміни?
Рахатур,

Я застряг у OpenSUSE Leap. Це дуже швидке та безпечне рішення. Працював у мене.
Рахатур

0

Вам потрібно скористатися однією з наступних команд. Який із них залежить від різних ОС-2 та програмного забезпечення, яке ви маєте та використовуєте.

sudo easy_install mysql-python (mix os)
sudo pip install mysql-python (mix os)
sudo apt-get install python-mysqldb (Linux Ubuntu, ...)
cd /usr/ports/databases/py-MySQLdb && make install clean (FreeBSD)
yum install MySQL-python (Linux Fedora, CentOS ...)

0

Я просто перемістив вихідну папку connectorз папки mysqlв site-packages. І біжиimport connector


0

Для 64-розрядних вікон

встановити за допомогою колеса

pip install wheel download from http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python

Для python 3.x:

pip install mysqlclient-xxxxxxxxx-win_amd64.whl

Для python 2.7:

pip install mysqlclient-xxxxxxxxx-win_amd64.whl


0

бігти

pip list 

щоб переглянути список встановлених пакетів. Якщо є, mysql-connector-pythonто це нормально.

Пам’ятайте, що не слід називати файл сценарію python як mysql.py

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.