(Python 3.6.1)Pandas df to MySQL db error,' ModuleNotFoundError:没有名为' MySQLdb'

时间:2017-06-14 16:49:32

标签: python mysql

我有一个.csv文件,我想首先存储在pandas数据帧中,然后导入到MySQL数据库表中。

我已按照此帖子进行初始设置:pandas dataframe to mysql db error database flavor mysql is not supported

我的.py代码如下:

from sqlalchemy import create_engine
import pandas

engine = create_engine("mysql+mysqldb://root:password@locahost/new_schema")

df = pandas.read_csv('items.csv')
df.to_sql('items', con=engine, flavor='mysql', if_exists='append')

我得到的错误信息是:

/PyCharmProjects/venv2/bin/python /PyCharmProjects/venv2/tutorial/tutorial/other/csvToMySQL.py
Traceback (most recent call last):
  File "/PyCharmProjects/venv2/tutorial/tutorial/other/csvToMySQL.py", line 4, in <module>
    engine = create_engine("mysql+mysqldb://root:password@locahost/new_schema")
  File "/PyCharmProjects/venv2/lib/python3.6/site-packages/sqlalchemy/engine/__init__.py", line 387, in create_engine
    return strategy.create(*args, **kwargs)
  File "/PyCharmProjects/venv2/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 80, in create
    dbapi = dialect_cls.dbapi(**dbapi_args)
  File "/PyCharmProjects/venv2/lib/python3.6/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 110, in dbapi
    return __import__('MySQLdb')
ModuleNotFoundError: No module named 'MySQLdb'

我的发动机设置有什么问题?

技术规格:

  • Mac OSX 10.11(El Capitan)
  • Python 3.6.1
  • PyCharm CE 2017.1.2
  • 5.7.18 MySQL社区服务器(GPL)

更新#1

我尝试过安装MySQL-python&#39;基于以下建议。这是我收到的错误:

Collecting MySQL-python
  Using cached MySQL-python-1.2.5.zip
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/5y/zqsn7cwx5dv_ntvdrwr08l100000gn/T/pip-build-umrr237y/MySQL-python/setup.py", line 13, in <module>
        from setup_posix import get_config
      File "/private/var/folders/5y/zqsn7cwx5dv_ntvdrwr08l100000gn/T/pip-build-umrr237y/MySQL-python/setup_posix.py", line 2, in <module>
        from ConfigParser import SafeConfigParser
    ModuleNotFoundError: No module named 'ConfigParser'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/5y/zqsn7cwx5dv_ntvdrwr08l100000gn/T/pip-build-umrr237y/MySQL-python/

更新#2

我试过安装mySQLdb&#39;基于以下建议。这是我收到的错误:

Collecting MySQLdb
  Could not find a version that satisfies the requirement MySQLdb (from versions: )
No matching distribution found for MySQLdb

2 个答案:

答案 0 :(得分:1)

经过多次尝试,我终于找到了使用Python 3.6.1快速完成工作的方法。显然,完成这项工作的最快方法是使用Homebrew安装mySQL,然后安装mysql客户端。我最初是通过.dmg安装MySQL的,而且在安装各种软件包时遇到了很多错误。

在终端中,输入:

  • $ brew install mySQL
  • $ pip install mysqlclient

现在可以运行.py代码:

from sqlalchemy import create_engine
import pandas

engine = create_engine("mysql+mysqldb://root:password@locahost/new_schema")

df = pandas.read_csv('items.csv')
df.to_sql('items', con=engine, if_exists='append')

(fyi,我从原始代码中删除了#flavor = mysql&#39;因为它不是公认的参数 - 请参阅https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_sql.html#pandas-dataframe-to-sql

参考链接:Can't install mysql-python with pip on MacOS 10.12.4

答案 1 :(得分:0)

您的项目找不到 MYSQLdb ,这是一个用于连接MySQL数据库服务器的接口。

您尚未导入MySQLdb来访问该软件包。

如果这是问题,那么在程序顶部添加import语句以使用该包。

import MySQLdb

如果仍然无法访问该软件包,则可能无法安装MySQLdb软件包。

然后在这种情况下,首先你需要搜索包,然后尝试安装它:

您可以使用 pip 搜索并安装任何软件包。

首先要确定你是否有这个包裹。

在cmd中运行此命令。

  • 点子列表(列出所有已安装的包)

检查是否列出了(MySQL-python)包。

如果没有则运行,

  • pip install MySQL-python(安装包)

然后尝试运行您的代码。

MySQL-python与python版本2. *一起使用, mysqlclient MySQL-python 的Python 3兼容分支。

要安装此库, pip install mysqlclient