导入mysql.connector Python

时间:2014-06-17 19:52:56

标签: python mysql

我有两个文件。第一个有连接和获取数据。我导入mysql.connector。该文件名为tasksSql.py

def get_users():
    import mysql.connector

    con = mysql.connector.connect(user='****', password='*****',
                                  host='127.0.0.1',
                                  database='tasks')
    c = con.cursor()


    users = []

    c.execute("""SELECT * FROM task_user""")

    for row in c:
        user = {
            'id': row[0],
            'first': row[1],
            'last': row[2],
            'email': row[3],
            'password': row[4],
            'creation_date': row[5]
        }
        users.append(user)
    c.close()
    return users

当我单独运行此文件时,它可以正常工作并返回数据。

我有另一个名为tasks.py的文件,我将要导入此文件,但是,这不起作用!当我导入文件时,它给出了错误:

ImportError: No module named mysql.connector

我做错了什么?

14 个答案:

答案 0 :(得分:75)

我遇到了类似的问题。我的环境细节 - Python 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
>>>

答案 1 :(得分:13)

这适用于ubuntu 16.04 for python 2.7:

sudo pip install mysql-connector

答案 2 :(得分:11)

我使用以下命令在Mac中安装python mysql-connector。它的工作原理

  

pip install mysql-connector-python-rf

答案 3 :(得分:8)

我在文件夹中有一个名为 mysql.py 的文件。这就是它给出错误的原因,因为它试图在导入过程中调用它。

import mysql.connector

我通过更改文件名解决了问题。

答案 4 :(得分:7)

根据您的python版本及其安装方式,可能未安装mysql连接器,您可以使用pip安装它

答案 5 :(得分:7)

python -m pip安装mysql-connector

答案 6 :(得分:1)

我使用Python 3.4 for Windows并从http://dev.mysql.com/downloads/connector/python/

安装了mysql库

答案 7 :(得分:1)

就我而言,在最近(Mac OS High Sierra)升级和随后的brew升级后,我开始看到上述错误。我按照上面的说明,但仍然得到相同的错误消息。然后我意识到我必须使用python2指向brew安装的python,而不是os x安装的。

答案 8 :(得分:1)

就我而言,我已经安装了软件包

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

它给了我同样的错误,所以,我使用卸载了这两个软件包

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

然后仅再次安装第二个软件包

pip install mysql-connector-python

此解决方案对我有用。

答案 9 :(得分:0)

对我有用的是直接下载.deb文件并安装它(dpkg -i mysql-connector-python_2.1.7-1ubuntu16.04_all.deb)。 Python下载位于here(您需要先创建一个免费的MySQL登录名才能下载)。请务必选择正确的版本,即(python_2.1.7python-py3_2.1.7)。只有“架构独立”版本适合我。

答案 10 :(得分:0)

我在WAMP上面临着同样的问题。找到pip命令可用的连接器。如果正确设置了Python ENV变量,则可以从任何提示运行此命令。

    pip search mysql-connector

    mysql-connector (2.2.9)                           - MySQL driver written in Python
    bottle-mysql-connector (0.0.4)                    - MySQL integration for Bottle.
    mysql-connector-python (8.0.15)                   - MySQL driver written in Python
    mysql-connector-repackaged (0.3.1)                - MySQL driver written in Python
    mysql-connector-async-dd (2.0.2)                  - mysql async connection

运行以下命令以安装mysql-connector

    C:\Users\Admin>pip install mysql-connector

验证安装

    C:\Users\Admin>python
    Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit 
    (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import mysql.connector
    >>>

此解决方案对我有用。

答案 11 :(得分:0)

如果您在PYCHARM上遇到此错误:ImportError:没有名为mysql.connector的模块

尝试以下解决方案: 打开Pycharm,转到Pycharm内的File-> Settings-> Project-> Python Interpreter,然后按+图标安装mysql-connector。 问题解决了!

答案 12 :(得分:0)

我的MySQL安装有问题,出现此错误:

pip install mysql-connector-python

但是我用以下方法解决了它:

Caused by: java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "getClassLoader")
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at com.sun.javaws.security.JavaWebStartSecurity.checkPermission(Unknown Source)
    at java.lang.ClassLoader.checkClassLoaderPermission(Unknown Source)
    at java.lang.ClassLoader.getParent(Unknown Source)
    at org.apache.commons.logging.impl.LogFactoryImpl.getLowestClassLoader(LogFactoryImpl.java:1327)
    at org.apache.commons.logging.impl.LogFactoryImpl.getBaseClassLoader(LogFactoryImpl.java:1247)
    at org.apache.commons.logging.impl.LogFactoryImpl.createLogFromClass(LogFactoryImpl.java:1048)
    at org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementation(LogFactoryImpl.java:914)
    at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:604)

答案 13 :(得分:0)

我也有类似的问题,解决办法是在实际脚本环境中安装mysql-connector-python。 检查您的脚本是否在第一行应使用哪个解释器。它会像

#!/usr/bin/python3
import mysql.connector

在这种情况下,将mysql-connector-python安装到python解释器的环境中。您应该使用 pip 或系统包管理器。

pip3 install mysql-connector-python

或者类似的东西

dnf install mysql-connector-python3.noarch

然后通过运行一个合适的 python 解释器来测试它。