我有一个. csv文件,我想首先将其存储在熊猫数据帧中,然后导入MySQL数据库表。
我的. 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'
我在引擎设置中做错了什么?
技术规格:
更新#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
经过多次尝试,我终于找到了使用Python3.6.1快速工作的方法。显然,完成这项工作的最快方法是使用Homebrew安装mySQL,然后安装mysql客户端。我最初是通过. dmg安装MySQL的,在安装各种软件包时遇到了很多错误。
在终端中,键入:
. 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')
(仅供参考,我从原始代码中删除了'味道=mysql',因为它不是一个可识别的参数-请参阅https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_sql.html#pandas-dataframe-to-sql)
参考链接:无法在MacOS 10.12.4上安装带有pip的mysql-python
您的项目找不到MYSQLdb,这是一个用于连接到MySQL数据库服务器的接口。
您尚未导入MySQLdb以访问该包。
如果这是问题所在,请在程序顶部添加import语句以使用该包。
import MySQLdb
如果您仍然无法访问该包,则很可能未安装MySQLdb包。
然后在这种情况下,首先您需要搜索包,然后尝试安装它:
您可以使用pip搜索和安装任何包。
首先要确定你是否有那个包裹。
在cmd中运行此命令。
检查您是否列出了(MySQL-python)包。
如果没有然后运行,
然后尝试运行您的代码。
MySQL-python与python版本2.*一起使用,mysqlclient是MySQL-python的Python3兼容分支。
要安装这个库,pip安装mysqlclient