python - (Python 3.6.1) Pandas df 到 MySQL 数据库错误, 'ModuleNotFoundError: No module named ' MySQLdb'

标签 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

我根据下面的建议尝试了“pip install MySQL-python”。这是我收到的错误:

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

我根据下面的建议尝试了“pip install mySQLdb”。这是我收到的错误:

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

最佳答案

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

在终端中,输入:

  • $brew 安装 mySQL
  • $pip 安装 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')

(仅供引用,我从原始代码中删除了“flavor = mysql”,因为它不是一个可识别的参数 - 请参阅 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

关于python - (Python 3.6.1) Pandas df 到 MySQL 数据库错误, 'ModuleNotFoundError: No module named ' MySQLdb',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44550495/

相关文章:

python - 在 Django 中包含几个模板的菜单

mysql - 获取包含星期几、周数、月份和年份的日期

mysql - SQL 没有返回任何结果?

php - 按大写字母或小写字母搜索单词

python - 与 MySQL 通信时,我的 Python 脚本没有错误,仍然没有变化

mysql - 创建一个表,其名称必须是另一个表中的主键

python小于错误比较int和数组长度

python - 我的ROC曲线的一个区域位于随机线下方,如何修改混淆矩阵?

python - 通过避免 NaN 滚动系列

python - 显示字典中的 seaborn 图