使用pytest测试pandas时出现KeyError问题求助
嘿,我来帮你搞定这个头疼的KeyError问题!先理清楚你的情况:你用的是Python 3.5.2,搭配pip 8.1.1,已经装了pandas和pytest 3.5.1,但按照官方文档跑测试套件时触发了KeyError,对吧?结合你的老版本环境,大概率是版本兼容或者依赖安装不完整的问题,给你几个一步步解决的方案:
1. 先把pip升级到兼容Python 3.5的最新版本
你的pip版本8.1.1实在太老了,对新一点的包依赖处理容易出问题。注意Python 3.5已经停止维护,最高只能升级到pip 20.3.x版本,执行这条命令:
python3 -m pip install --upgrade pip==20.3.4
升级后再处理后续步骤,能避免很多依赖安装的坑。
2. 重新安装pandas和测试依赖,确保完整性
先卸载现有的pandas和pytest,然后重新安装时带上必要的测试依赖:
python3 -m pip uninstall -y pandas pytest python3 -m pip install pandas pytest==3.5.1 pytest-cov
这里加上pytest-cov是因为pandas的部分测试用例会依赖它,之前没装的话可能会触发奇怪的错误。
3. 用正确的方式运行测试套件
很多人容易搞错测试命令的路径,给你个靠谱的流程:
- 先打开Python交互环境,找到pandas的安装路径:
import pandas print(pandas.__path__)
你会得到类似['/usr/local/lib/python3.5/site-packages/pandas']的输出,记住这个路径。
- 然后在终端cd到该路径的上级目录(比如
/usr/local/lib/python3.5/site-packages/),运行测试命令:
python3 -m pytest pandas/tests/ -xvs
参数解释:-x让测试在第一个错误时停止,-v显示详细的测试用例信息,-s保留测试的输出内容,这样你能清楚看到是哪个测试用例抛出了KeyError,方便进一步排查。
4. 锁定pandas到兼容Python 3.5的版本
如果上面的步骤还是不行,那大概率是pandas版本和Python 3.5不兼容。Python 3.5支持的最后一个pandas大版本是0.25.x,你可以指定安装这个版本试试:
python3 -m pip install pandas==0.25.3
安装完成后再重新运行测试,应该能解决版本不兼容导致的KeyError问题。
内容的提问来源于stack exchange,提问作者FerdousTheWebCoder

