ImportError:没有名为“ MySQL”的模块


81

我已经成功下载了MySQL的Connector / Python。我在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 2015年

您在什么平台上?视窗?
devmacrile 2015年

OS X,我在我的shell中进行了测试:print(get_python_lib()),它返回了/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages
Melanie

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']
梅勒妮2015年

您在该目录中看到连接器了吗?在您的python shell中,执行os.listdir("/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages")。并且which python在终端中运行也为您提供了这条路?
devmacrile 2015年

Answers:


105

我面临着类似的问题。我的环境详细信息-Python 2.7.11 pip 9.0.1 CentOS版本5.11(最终版)

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 install mysql-connector-python-rf


1
感谢您的命令“ pip install mysql-connector-python-rf”。它解决了我的问题。
艾哈迈德·加德

16
pip install mysql-connector对我来说足够了。
jorijnsmit

3
另外,不要将您的python脚本称为“ mysql.py”。以防万一。
本治

以防万一有人像我一样愚蠢,对我来说,还需要采取其他措施。遵循此答案中的建议后,我需要在PyCharm运行配置(我将所有模块安装到venv中的那个)中选择正确的Python解释器。
sereschkin

谢谢。pip search mysql-connector这真的很有用
Michael

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 Ujvary

19

我尝试了所有答案,但没有为我工作。这是一个python版本的问题,最后,我意识到python 3脚本至少在ubuntu 18上需要python 3的显式pip命令。

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

请注意,我刚刚在ubuntu 16.04服务器上安装了mysql。我按以下顺序尝试了不同的选项:

  • 使用仓库中的软件包 sudo apt-get install python-mysqldb:已正确安装,但不幸的是返回了pythonImportError: No module named 'mysql'
  • 使用Mysql中的ubuntu软件包: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

没有调查为什么前两个失败,可能稍后再试。希望这对某人有帮助。


克里斯蒂安(Cristian)-谢谢您,您能否详细说明适用于您的解决方案(我相信tar.gz文件)?我遇到了同样的问题,但是您的第三个选择缺少详细信息。谢谢!
elPastor

抱歉,我现在才读你的评论。我离开了工作地点。对似乎有效的VM进行了快速测试,请参阅更新后的答案。
nihilis

3

您需要使用anaconda来管理python环境依赖项。可以使用conda安装程序安装MySQL连接器

conda install -c anaconda mysql-connector-python

Anaconda是公认的Python依赖项管理器。如果不正确,请发表评论。
akshat thakar

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

这个问题对我来说是困扰!!!100%的解决方案是忘记使用mysql模块:import mysql.connector,而使用pymysql经由进口pymysql。我通过说明安装了它:python3 -m pip install PyMySQL

进行了以下更改:1. Import语句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位Windows

使用滚轮安装

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

我的项目正在使用pipenv。以下命令对我有用:

pipenv install mysql-connector-python

0

pip list 

查看已安装的软件包列表。如果有 mysql-connector-python那就很好。

切记不要将python脚本文件命名为mysql.py

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.