【问题标题】:ImportError: No module named 'MySQL'ImportError:没有名为“MySQL”的模块
【发布时间】:2015-10-01 00:25:33
【问题描述】:

我已成功下载 MySQL 连接器/Python。我在 Python 的 shell 中使用了以下代码来测试我的连接:

import mysql.connector

我收到以下错误消息:

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

我不明白为什么 MySQL 没有被识别。

【问题讨论】:

  • python 是否配置为在您的 PATH 环境变量中?我相信这是正确安装所必需的。
  • 你在哪个平台上?窗户?
  • OS X,我在我的 shell 中测试了这个: 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 shell 中,执行os.listdir("/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages")。在终端中运行which python 也会为您提供这条路径?

标签: python mysql


【解决方案1】:

我遇到了类似的问题。我的环境细节 - 蟒蛇 2.7.11 点 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 安装 mysql-connector-python-rf

【讨论】:

  • 感谢这个命令“pip install mysql-connector-python-rf”。它解决了我的问题。
  • pip install mysql-connector 对我来说已经足够了。
  • 另外,不要调用你的 python 脚本 "mysql.py"。以防万一。
  • 以防万一有人像我一样愚蠢,对我来说还需要一个额外的步骤。遵循此答案中的建议后,我需要在 PyCharm 运行配置中选择正确的 Python 解释器(我将所有模块安装到的 venv 中的解释器)。
  • pip3 install mysql-connector-python
【解决方案2】:

使用 pip3 install mysql-connector 安装 python 打包(如果您使用的是 Python 3。对于 Python 2,您可以使用pip)。

【讨论】:

  • 它不工作,pip install mysql-connector-python 工作
【解决方案3】:

可能是从 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 安装时安装所需的模块(如果有很多)

【讨论】:

  • 这给了我一个漫长的、红色的和可怕的错误。 @ilexcel 的回答完美。
【解决方案4】:

我犯的愚蠢错误是将mysql.py 保留在同一个目录中。尝试将 mysql.py 重命名为另一个名称,以便 python 不要将其视为模块。

【讨论】:

  • 尝试突出显示关键字并明确格式,这将有助于为其他人找到答案
  • 我遇到了同样的错误。我投票支持这个答案,因为这就是发生在我身上的事情。我的脚本名为 mysql.py 显然是不允许的。我更改为 conecta.py 并且它起作用了。
  • 该死!这应该是公认的答案!谢谢!
  • 非常感谢。它解决了我的问题,请不要使用你的文件名 mysql.py
  • 在尝试了所有之前的解决方案之后,这对我有用。谢谢
【解决方案5】:

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

python3 -m pip install mysql-connector

【讨论】:

    【解决方案6】:

    试试看

    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
    

    【讨论】:

      【解决方案7】:

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

      conda install -c anaconda mysql-connector-python
      

      【讨论】:

      • Anaconda 是公认的 Python 依赖管理器。如有不实请评论。
      【解决方案8】:

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

      • 使用来自存储库sudo apt-get install python-mysqldb的包:已正确安装,但不幸的是python返回ImportError: 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

      没有调查前两个失败的原因,可能稍后再试。 希望这可以帮助某人。

      【讨论】:

      • 克里斯蒂安 - 谢谢你,你能详细说明一下对你有用的解决方案(我相信 tar.gz 文件)吗?我遇到了同样的问题,但是您的第三个选项缺少详细信息。谢谢!
      • 对不起,我现在才看到你的评论。我离开了我做这件事的工作场所。对似乎可以工作的 VM 进行了快速测试,请参阅更新后的答案。
      【解决方案9】:
      sudo python3 -m pip install mysql-connector-python
      

      【讨论】:

        【解决方案10】:

        运行

        pip list 
        

        查看您已安装的软件包列表。如果有 mysql-connector-python 那没关系。

        记住不要将你的 python 脚本文件命名为 mysql.py

        【讨论】:

        • 非常感谢!很大的帮助!我一切都正确,但我的脚本文件被命名为“mysql.py”。
        【解决方案11】:

        我发现 @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
        

        【讨论】:

          【解决方案12】:

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

          对以下内容进行了更改:

          1. 进口声明
          2. 连接器
          3. 光标

          在那之后,一切都像魅力一样运作。希望这会有所帮助!

          【讨论】:

          • 您能列出您所做的更改吗?
          • 我被 OpenSUSE Leap 困住了。这是一种非常快速且安全的解决方法。从我那里工作。
          • 谢谢!我已经和 mysql.connector 斗争了 48 小时。
          【解决方案13】:

          我找到了另一个原因: 如果您的程序文件路径包含空格或特殊字符,则会出现此错误。

          【讨论】:

            【解决方案14】:

            @nembokid 谢谢,我想以这个答案为基础。如果您使用 anaconda 或任何其他形式的环境管理,请务必从该环境中选择 python。

            sudo /home/joseph/anaconda3/envs/stocks/bin/python -m pip install mysql-connector-python
            

            【讨论】:

              【解决方案15】:

              我遇到了同样的问题,我使用以下步骤解决了它: 第 1 步 - 在终端类型 echo %path% 中查找类似于“C:\Users\AppData\Local\Programs\Python\Python39”的文件 第 2 步 - 在 vs 代码类型“ctrl+shift+p”中选择 python 解释器 第 3 步 - 确保选择具有正确路径的解释器,您在使用 echo %path% 时找到了您的解释器

              现在运行程序!

              【讨论】:

                【解决方案16】:

                尽管使用其他答案中提到的命令安装连接器,但我在 mac 和 linux 上都面临同样的问题。 以下命令对我有用。

                sudo python3 -m ensurepip --default-pip
                python3 -m pip --version
                sudo python3 -m pip install mysql-connector-python
                

                我不知道它们有什么区别,因为我不是 python 程序员,但想知道是否有人可以启发。

                【讨论】:

                  【解决方案17】:

                  您需要使用以下命令之一。哪一个取决于您拥有和使用的不同的 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 ...)
                  

                  【讨论】:

                    【解决方案18】:

                    我刚刚将源文件夹 connector 从文件夹 mysql 移动到 site-packages。 并运行import connector

                    【讨论】:

                      【解决方案19】:

                      对于 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
                      

                      【讨论】:

                      • 在哪里可以找到版本?
                      【解决方案20】:

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

                      pipenv install mysql-connector-python
                      

                      【讨论】:

                        【解决方案21】:

                        我确实尝试使用 apt 和 pip 重新安装。 但唯一有效的是install from source

                        在 Ubuntu 18.04 x64 上

                        【讨论】:

                          【解决方案22】:

                          这是我最终解决问题的方法。

                          问题 我既无法编译,也无法在 VSCode 上使用该软件包。

                          上下文 系统:Ubuntu 18.04 Python 版本:3.6.* 已安装的软件包

                          1. mysql
                          2. mysql-connector-python
                          3. mysql-connector-python-rf

                          我是如何解决的: 在我看到这篇文章之前,没有任何效果: https://dev.mysql.com/doc/connector-python/en/connector-python-cext-development.html

                          在 python 控制台上,只需设置

                          use_pure = True
                          

                          这样,我可以改用基于 python 的连接器。

                          import mysql.connector
                          

                          但是,如果出现问题,可以通过 _mysql_connector 模块使用 C 扩展。

                          参考资料:

                          1. https://dev.mysql.com/doc/connector-python/en/connector-python-cext-module.html
                          2. https://www.reddit.com/r/learnpython/comments/a0q4bq/mysqlconnector_how_to_use_use_puretrue/
                          3. https://dev.mysql.com/doc/connector-python/en/connector-python-connectargs.html
                          4. https://overiq.com/mysql-connector-python-101/installing-mysql-connector-python/

                          【讨论】:

                            猜你喜欢
                            • 2013-07-11
                            • 2013-03-11
                            • 2012-12-07
                            • 2012-05-23
                            • 2019-07-29
                            • 2015-07-04
                            • 2014-03-15
                            • 2017-12-29
                            • 2014-09-12
                            相关资源
                            最近更新 更多