课程教材:
《Python数据分析与应用》
编程平台:
Jupyter Notebook
问题描述:
在按照教材P81代码4-1进行实验时,频频出现报错,于是本着学习理解的心态,在查阅资料解决所有问题后,特记录一下处理过程,希望能帮助到和我一样有困惑的小白朋友们。
(注:教材上的内容将不再赘述,由于本次实验在学校机房中完成,不会提及相关环境的配置)
1、键入教材P81代码4-1的内容并运行,报错:No module named 'pymysql'
问题分析:没有安装pymysql模块
解决方案:用管理员身份运行cmd,输入“conda install pymysq”并回车,等待安装结束。输出结果如下:
(注:这一步需要敲一个“y”并回车以继续)
安装结束后,重启内核并再次运行,可见没有发生报错:
2、继续键入教材P82代码4-2的部分内容并运行,报错如下:
问题分析:未安装或者未打开MySQL服务(机房电脑上已安装MySQL,只是没有默认启动服务,因此需要手动打开)
解决方案:打开“服务” --> 找到“MySQL” --> 右键菜单点击“启动”,此时已手动打开MySQL服务:
3、再次运行,又发生报错,但与上一步不同,报错如下:
问题分析:访问被拒绝,检查MySQL连接的用户名、密码、地址是否正确。
解决方案:检查并修改“create_engine”中相应的内容(由于机房电脑root用户密码为空,因此删去了原语句中的“1234”),即:
engine = create_engine("mysql+pymysql://root:1234@localhost:3306/testdb?charset=utf8")
4、再次运行又发生报错,且又与上一步不同,报错如下:
问题分析:没有名为“testdb”的数据库,需要手动在MySQL中创建一个。
解决方案:在cmd中输入“mysql -u root -p”并回车,输入密码并回车,即可进入MySQL。再输入“show databases;”并回车,即可显示所有的数据库:
① 打开MySQL Workbench,可以看到已存在一个MySQL连接(如没有则需创建一个,点击⨁号即可),双击进入:
② 点击工具栏第四个图标,创建一个新的数据库:
③ 根据实验要求,输入数据库名称:testdb、编码:utf-8,然后点击“Apply”:
④ 一路确定即可,最后点击“Finish”,完成数据库的创建。
⑤ 导入sql文件,这里是实验所提供的一些文件:
⑥ 在MySQL Workbench中,点击“File”-->“Open SQL Script...”:
⑦ 选择一个sql文件,点击“打开”:
⑧ 点击第三个小图标⚡,等待查询结束:
重复⑧-⑨步骤,将剩下的sql文件导入并进行查询。
⑩ 再次运行,没有发生报错,且返回的内容与教材上一致:
继续键入教材P82代码4-2剩下的内容,再次运行,返回的内容与教材上一致:
至此,问题已全部解决。
总的来说,就是要确保MySQL的安装及启动服务、代码内容与MySQL连接的配置一致、相应数据库中存在所需内容。