本地Ubuntu 16.04 LTS导入Pandas失败,求助解决方法
看了你的情况——本地Ubuntu 16.04笔记本始终无法导入Pandas,同版本云服务器却能正常运行,用conda和pip安装后还报出不同的错误,这大概率是本地Python环境的依赖冲突或者版本适配问题,给你几个针对性的排查和解决步骤:
1. 对齐本地与服务器的Python/Pandas版本
云服务器能正常运行,说明它的环境是适配的,先把本地的版本和服务器完全对齐:
- 检查本地与服务器的Python版本:
python --version python3 --version
很多人本地同时安装了Python2和Python3,pip/conda可能默认关联到了不同版本,导致安装的Pandas不在你当前运行的Python环境中。
- 查看服务器上的Pandas版本:
python -c "import pandas; print(pandas.__version__)"
记下这个版本号,后续本地就安装完全一致的版本。
2. 彻底清理残留的损坏Pandas文件
两次安装报错不同,很大概率是之前的安装残留了损坏的文件,先彻底清理干净:
- 若之前用conda安装过:
conda remove --force pandas conda clean --all
- 用pip卸载:
pip uninstall -y pandas pip cache purge
还可以手动前往Python的site-packages目录(比如/usr/local/lib/python3.5/site-packages/或虚拟环境下的对应路径),删除所有带pandas的文件夹和文件,确保无残留。
3. 安装适配Ubuntu 16.04的Pandas版本
Ubuntu 16.04自带的Python版本较老(比如Python3.5),高版本Pandas已不再支持该版本,因此必须安装适配的旧版本:
- 若为Python3.5,最后一个支持的Pandas版本是
0.25.3;若为Python3.6,可安装1.1.5。直接指定版本安装:- conda方式:
conda install pandas==x.x.x # 将x.x.x替换为服务器查到的版本- pip方式:
pip install pandas==x.x.x
4. 用虚拟环境隔离依赖冲突
本地全局环境可能存在其他库干扰,创建全新的虚拟环境测试:
- 用virtualenv:
sudo apt-get install virtualenv virtualenv -p python3 my_pandas_env source my_pandas_env/bin/activate pip install pandas==x.x.x # 测试导入 python -c "import pandas as pd; print('导入成功!')"
- 用conda虚拟环境:
conda create -n my_pandas_env python=3.5 pandas==x.x.x conda activate my_pandas_env python -c "import pandas as pd; print('导入成功!')"
如果虚拟环境中能正常导入,说明是全局环境的依赖冲突问题,后续可以直接使用这个虚拟环境进行开发。
5. 解决pip安装后的re_type导入错误
这个错误通常是Pandas依赖的Numpy版本不兼容导致的,需要为Pandas搭配对应版本的Numpy:
比如安装Pandas 0.25.3时,搭配Numpy 1.18.5:
pip install numpy==1.18.5 pandas==0.25.3
你可以根据Pandas的版本查找对应的兼容Numpy版本,参考Pandas官方的版本兼容矩阵。
6. 补全系统级依赖
Ubuntu 16.04可能缺少一些编译依赖,先安装后再重试:
sudo apt-get update sudo apt-get install build-essential python3-dev python3-pip libatlas-base-dev
如果以上步骤都尝试后仍无法解决,你可以提供本地的Python版本、pip/conda版本,以及pip list或conda list的输出,方便进一步排查。
内容的提问来源于stack exchange,提问作者Ludlow_Luddite




