你有没有被 气到想重装系统我踩过 8 次。这篇不讲那些虚头巴脑的, 将下面最违背人类常理的坑在一次讲解中彻底说清楚。存在8个报错情况, 并且每个都附带一行解决的办法, 建议你先进行收藏之后再去看——以免你哪天遇到了, 还得当场去搜索。我从事全栈开发好些年了, 从做爬虫到开发桌面软件PyQt这些工作我都做过。实话实说: 写代码的时候, 一半时间耗费在和报错争论上, 另一半时间花在去百度搜索解决办法上去了。下面的这8个, 属于那种能让我恨不得给三年前的自己狠狠来上一巴掌的坑。1. 中文文件一打开就炸现象UnicodeDecodeError: gbk codec cant decode byte 0x?? in position ??遇到的踩坑状况是, 你编写了一个脚本去读取data.txt这个文件, 文件里面明显是包含有中文内容的, 然而一旦运行那个脚本就出现了程序崩溃的情况。或者在cmd中打印了一个中文, 结果显示出来的却是一堆问号。为啥反人类呢, 默认采用gbk编码, 3默认采用utf-8编码, 两边彼此看不懂, 你啥都没做错, 它却突然出问题了, 就像爆炸了一样。一行解决open(data.txt, encodingutf-8) # 永远显式指定编码要是控制台打印出来的出现了乱码状况, 那就要先经由chcp 65001这项操作将终端切换为utf-8格式状态。顺便在要处理的文件开头部位添加 # -*- : utf-8 -*-以此使得事情变得更省心实际上3的前提下默认是如此表现, 可不添加白不添加这样一种状况嘛。2. pip 装了却 不到现象ModuleNotFoundError: No module named requests碰到踩坑的情况是这样的, 你才进行了pip的操作, 心里满怀信心地去运行, 结果它却告知你没有安装, 这时候你当场就陷入了对人生的怀疑之中。为甚么会反人类呢: 你电脑里头大概率并非只会有一个 , pip 和 不见得就是一对配偶 —— pip 有可能把那一包装进了 A 解释器, 而你运行的却是 B 解释器。一行解决python -m pip install xxx # 别裸 pip install铭记这样一句话, 倘若可以使用带有 -m 参数的 pip, 那就千万不要去用单纯的 Naked pip如此一来能够为你省去八成发生玄虚报错的可能性。3. pip 卡死 / SSL 报错现象Could not fetch URL https://pypi.org/...: SSLError或者直接卡住不动、超时。踩坑的场景如下, 公司的网络, 校园的网络, 国内直接连接 PyPI, 慢得能让你难受至极, 还时不时出现 SSL 报错。为何会反人类呢? 默认的源头处于国外, 网络一旦抖动就会出现超时情况, 并且还不会清清楚楚地报错。一行解决换国内镜像飞快pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple嫌每次加麻烦就写进 pip 配置永久生效。4. 路径反斜杠转义\n \t 半夜偷改你的路径现象FileNotFoundError: [Errno 2] No such file or directory: C:\new\test.txt踩坑的一种场景呈现: 当你从那个资源管理器之中复制了一条路径, 这条路径为C:\new\test.txt , 然后粘贴进代码里, 代码运行之后却说找不到该档文件。此时, 你目不转睛地盯视着这条路径看了三次, 心里一再认定怎么想都分明就是这个路径啊怎能做出反人类之举: 采用反斜杠 \ 作为路径分隔符号, 不过 却将 \n 视作换行、把 \t 当作制表符。恰好你的路径当中存在个 \n 或者 \t……悄然间就被更改了。一行解决三选一rC:\new\test.txt # ① 原始字符串反斜杠原样保留 C:/new/test.txt # ② 正斜杠Python 认 from pathlib import Path p Path(C:/new) / test.txt # ③ pathlib最推荐5. : DLL load现象ImportError: DLL load failed while importing cv2踩坑的情形如下: 你装上了一个得借助C/C来进行编译的库, 以及某些特定的numpy版本, 在安装时过程颇为顺畅, 然而一旦怎样怎样, 就会报出这个情况。为何会呈现反人类的状况呢, 它并不会向你明晰地告知缺少哪一个DLL文件, 仅仅是给出一句冷冰冰的“加载失败”。对于新手而言, 直接就陷入了懵懂的状态中。一行解决组合拳6. pip 不是内部或外部命令出现的状况是, 在cmd当中输入pip, 然后按下回车键, 但是它却回复你说这不是内部或者外部命令。场景是刚完成装备, 满心欢喜想着去安装一个库, 然而结果却是连pip都没办法自行敲出来。为什么会反人类呢: 安装的时候, 存在一个“Add to PATH”的勾选项, 新手没有勾选。又或者, 你创建了虚拟环境, 却忘记激活了。一行解决python -m pip # 最稳永远能用不依赖 PATH如果你期望通过直接敲出pip来达成目标, 那么就务必要将处于安装目录之下的文件夹添加到系统PATH中去。7. 打包后 exe 打不开 / 被杀软删结果呈现出这样的状况: 当对exe进行双击操作时, 它会突然闪退, 或者弹出“to...”这样的内容表现显得更为离谱的则是, 它竟然被360直接当作病毒而删除了。踩坑的场景是, 你辛辛苦苦、费尽力气写好了脚本, 然后经过打包成为exe格式发给同事, 结果同事竟然这样说, “你发的这个是病毒啊, 直接就把我的计算机给删除了”。为啥反人类, 能跑的脚本一旦被打包就坏掉了, 并且, 那个打包弄出来的exe特性太显著了, 很容易被杀毒软件错误地报告。一行解决组合拳pyinstaller --onedir --version-file ver.txt your_script.py8. 文件被占用 / 没权限写现象PermissionError: [Errno 13] Permission denied踩坑的情况是这样的, 你打算把脚本改成Excel格式, 然而Excel程序当时还处于开启的状态, 导致没办法写入内容, 又或者说, 当你想要往C:\ Files这个路径里写入某些东西的时候, 系统却你没有相应的权限来进行此项操作。因何反人类, 的那个文件锁竟比Linux要凶狠许多。某个文件处于后台被占用的状况下, 在前台你就休想对其进行操作。一行解决import os path os.path.expanduser(~) # 用用户目录别碰系统目录在着手撰写文件之前, 要先将那些处于占用状态的程序关闭掉, 当中包含有Excel, 还有IDE, 以及资源管理器预览这一项。写在最后回过头去看, 这八个坑当中, 没有任何一个是因为你代码质量差, 全然都是另外一些因素和另外一些因素在暗地里暗暗较着劲。中文乱码不是你代码烂是 gbk 和 utf-8 在打架。要是今天单单只让你记着那么一句, 记住那便是, 能够使用 -m pip 就千万别去用裸 pip。