当初刚上手Python写代码,最折磨人的基础操作就是python如何导入包,网上教程写的零零散散,一会import一会from,照着抄完要么报错找不到模块,要么导入后调用失效,熬了一整晚才把最基础的导入逻辑摸透。
那天本来只想写个简单的网页请求代码,满心以为几行代码就能搞定基础功能,结果第一关就死死卡在导入包这个基础操作上。最开始完全分不清不同类型包的导入规则,不管是Python系统自带的内置包,还是需要额外下载配置的第三方包,全部无脑直接敲import语句,理所应当的觉得只要代码拼写没错,写完导入语句就能直接调用包里的功能,完全没考虑过包的来源差异会直接影响导入结果。
第一次报错是红色的ModuleNotFoundError。
盯着报错窗口愣了半天,逐字逐句检查代码拼写,requests单词一个字母都没有写错,代码前后也没有多余空格和格式错误,可程序就是运行失败。当时傻乎乎的以为是编辑器出了bug,反复重启PyCharm软件,甚至删掉原有项目重新创建空白文件测试,折腾了二十多分钟,报错依旧没有消失。反正那会儿完全不懂核心逻辑,根本不知道内置包和第三方包的导入前提完全不一样,内置包是软件自带无需配置的,第三方包必须先安装到本地环境,才能执行导入操作。
后来才反应过来,我一直重复犯的低级错误,就是跳过了第三方包的安装步骤。在本地的Python运行环境中,requests不属于原生自带的模块,裸写import requests百分百会触发模块找不到的报错,这是所有新手都会踩的无脑坑,之前看速成教程的时候完全忽略了这关键的前置步骤。
正确地操作流程其实很简单,就固定两步。先打开电脑的命令终端,输入pip install 对应的包名,等待系统自动下载安装,终端页面出现success成功提示之后,再回到代码编辑页面书写导入语句。不管是直接用import 包名全局导入,还是用from 包名 import 功能进行局部导入,都可以正常生效,不会再出现模块缺失的问题。
内置包的导入就不用这么繁琐。
像是time、random、os、sys这些Python原生自带的内置包,不用做任何安装操作,不用输入任何终端指令,直接在代码开头书写对应的导入语句就能直接调用功能。之前随便试过导入time包写延时代码,一次运行成功,当时还特别疑惑为啥有的包导入顺利、有的包疯狂报错,折腾好久才搞明白,导入包的核心区别从来不是代码写法,而是包是否存在于本地默认运行环境中。
那天凌晨两点,终于完整跑通了带第三方包导入的爬虫代码,屏幕上稳稳跳出正常的网页响应数据,没有一点红色报错。随手关掉跳动的代码窗口,揉了揉酸涩的眼睛,起身关掉了桌面亮了一整晚的台灯。