安装tables==2.4.0报错:Command "python setup.py egg_info"返回错误码1
解决Ubuntu 14.04下安装tables 2.x版本的
egg_info错误问题 我之前在Ubuntu 14.04环境里装老版本的PyTables(也就是你说的tables包)时也碰到过一模一样的egg_info错误,主要是因为2.x版本太老,和系统默认的依赖库、Python包版本不兼容导致的。给你几个亲测有效的解决方案,一步步来试:
1. 先补全系统层面的底层依赖
PyTables 2.x依赖HDF5、LZO、BZ2这些底层库,Ubuntu 14.04默认可能没装全,先把这些装上:
sudo apt-get update sudo apt-get install libhdf5-serial-dev liblzo2-dev libbz2-dev python-dev
这些是编译老版本PyTables必须的系统库,缺了任何一个都会导致setup.py执行失败。
2. 在virtualenv里先装兼容的numpy版本
PyTables 2.4.0和新版本numpy不兼容,必须先装一个适配的旧版numpy,再装tables:
先激活你的virtualenv:
source 你的虚拟环境目录/bin/activate
然后安装numpy 1.11.3(这个版本和tables 2.4.0完美兼容):
pip install numpy==1.11.3
之后再安装目标版本的tables:
pip install tables==2.4.0
3. 如果pip安装还是失败,试试手动编译源码
有时候pip源里的预编译包可能有问题,手动下载源码编译更靠谱:
- 下载tables 2.4.0的源码压缩包(去PyPI找对应的.tar.gz文件)
- 解压后进入源码目录,在激活的virtualenv里执行:
python setup.py build --hdf5=/usr/lib/x86_64-linux-gnu/hdf5/serial/ python setup.py install
这里指定HDF5的路径是因为Ubuntu 14.04里HDF5的默认安装路径就是这个,确保setup.py能正确找到它。
4. 最后试试重建干净的virtualenv
如果上面的方法都不行,可能是你当前的virtualenv里残留了一些冲突的依赖,重建一个干净的环境试试:
deactivate rm -rf 你的虚拟环境目录 virtualenv -p python2.7 你的虚拟环境目录 source 你的虚拟环境目录/bin/activate pip install numpy==1.11.3 pip install tables==2.4.0
内容的提问来源于stack exchange,提问作者Lot_to_learn
相关产品推荐
相关产品推荐

