运行pandas的pd.test()需哪些依赖?现有环境报错求解决方案
解决pd.test()依赖缺失问题的方案
我来帮你梳理下这个问题的实用解决方案:
关于pd.test()所需依赖的清单
其实pandas官方并没有单独列出pd.test()所需的完整依赖清单,原因很简单——这个测试套件包含了所有可选依赖对应的测试用例(比如云存储、数据库、第三方数据处理库相关的测试),而这些依赖完全不是日常使用pandas的必要项。你现在遇到的google-compute-engine缺失,只是因为测试套件里包含了GCP存储相关的测试用例,属于可选依赖范畴,和pandas核心功能无关。
更优的解决方法(推荐)
除非你是pandas开发者或者需要做全量兼容性测试,否则完全没必要安装所有可选依赖,推荐以下几种更高效的方式:
1. 只运行核心功能测试
直接用pytest指定只运行pandas的核心测试模块,跳过那些需要可选依赖的测试用例,命令如下:
pytest -xvs pandas/tests/
如果想更精准地跳过特定类型的测试(比如云服务相关),可以用-k参数筛选:
pytest -xvs pandas/tests/ -k "not gcp and not moto"
参数说明:
-x:遇到测试失败就立即停止,避免浪费时间-v:显示详细的测试进度和结果-s:显示测试用例中的打印输出-k:通过关键词筛选要运行/跳过的测试
2. 按需安装缺失的依赖(仅当需要全量测试时)
如果确实要运行所有测试,遇到缺失的依赖就针对性安装即可,比如这次的google-compute-engine:
pip install google-compute-engine
不过要注意,这类可选依赖数量不少(比如AWS相关、各类数据库驱动等),全量安装会非常繁琐,只推荐给需要完整测试场景的用户。
3. 利用pandas的可选依赖分组安装
pandas提供了按功能分组的可选依赖安装方式,可以快速安装某一类测试所需的依赖,比如安装所有云服务相关的依赖:
pip install pandas[cloud]
其他常用分组还有:
pandas[all]:安装所有可选依赖(不推荐,包数量极多)pandas[io]:安装所有IO相关的依赖(比如Excel、数据库驱动等)pandas[plotting]:安装绘图相关的依赖
额外建议:用虚拟环境隔离依赖
因为你用的是服务器上的现有Python环境,为了避免安装的测试依赖影响现有项目,建议用venv创建一个独立的虚拟环境:
# 创建虚拟环境 python -m venv pandas-test-env # 激活虚拟环境(Linux/macOS) source pandas-test-env/bin/activate # Windows系统激活命令: # pandas-test-env\Scripts\activate # 在虚拟环境中安装所需包 pip install pandas pytest # 之后再运行测试或安装额外依赖
内容的提问来源于stack exchange,提问作者Dan Hampton
相关产品推荐
相关产品推荐

