升级Python至3.12后Pandas程序依赖报错:找不到six.moves模块
解决Python 3.12中
six.moves模块缺失的旧版Python切换方案 下面是几个在Mac上切换旧版Python的可行方案,适配你的PDF处理脚本依赖需求:
方案1:用pyenv管理多版本Python(推荐)
pyenv可以轻松在多个Python版本间切换,不影响系统全局环境:
- 安装pyenv:
brew install pyenv - 查看可安装的旧版Python列表:
pyenv install --list,选和原脚本兼容的版本(比如3.9.x、3.10.x,这些版本对six 1.12.0兼容性更好) - 安装指定版本:
pyenv install 3.9.19(以3.9.19为例,可根据列表选合适版本) - 切换到目标版本:
- 推荐局部切换:进入脚本所在目录,执行
pyenv local 3.9.19,目录下会生成.python-version文件,后续进入该目录自动切换版本 - 全局切换(不推荐,影响所有项目):
pyenv global 3.9.19
- 推荐局部切换:进入脚本所在目录,执行
- 验证版本:
python --version,确认显示为安装的旧版 - 重新安装依赖:
pip install PyPDF2 textract tabula-py pandas python-dateutil==2.8.2 six==1.12.0(指定dateutil 2.8.2是因为它和six 1.12.0兼容)
方案2:直接安装官方旧版Python+虚拟环境
如果不想用pyenv,可直接安装官方包:
- 下载Mac兼容的旧版Python安装包(比如3.9.x系列),运行完成安装
- 脚本目录下创建虚拟环境:
python3.9 -m venv pdf_script_env - 激活虚拟环境:
source pdf_script_env/bin/activate - 安装依赖:
pip install PyPDF2 textract tabula-py pandas python-dateutil==2.8.2 six==1.12.0
方案3:用conda创建隔离环境(适合有conda使用习惯的用户)
- 先安装miniconda或anaconda,然后创建指定Python版本的环境:
conda create -n pdf_env python=3.9 - 激活环境:
conda activate pdf_env - 安装依赖:
conda install PyPDF2 pandas tabula-py,再用pip安装textract和指定版本的six:pip install textract six==1.12.0
额外注意事项
- 安装textract时可能需要依赖外部工具,Mac上执行
brew install poppler tesseract即可解决 - 所有方案都建议用虚拟环境隔离,避免不同项目的依赖冲突
内容的提问来源于stack exchange,提问作者kameron cole
相关产品推荐
相关产品推荐

