Ubuntu 18.10下安装适配Obspy的pyproj 1.9.5.1遇阻求助
解决Ubuntu 18.10上Obspy依赖pyproj 1.9.5.1的安装问题
我完全理解你在Ubuntu 18.10上安装Obspy时被pyproj版本兼容问题折腾的挫败感——旧版pyproj和新工具链、系统依赖的冲突确实很棘手。咱们一步步来搞定这个问题:
先清理混乱的残留安装
首先得把之前尝试安装留下的冲突包清理干净:
- 卸载已安装的pyproj和Cython:
pip3 uninstall -y pyproj cython - 修复apt的损坏依赖:
sudo apt --fix-broken install - 恢复系统默认的libproj版本(之前你尝试升级到6.2.0导致依赖断裂,pyproj 1.9.5.1其实兼容Ubuntu 18.10自带的5.2.0版本):
sudo apt install --reinstall libproj-dev
安装适配旧版pyproj的Cython版本
你遇到的exc_traceback编译错误,是因为新版本Cython生成的代码适配了Python的新线程状态结构,而pyproj 1.9.5.1是基于旧版Cython编写的。咱们安装一个兼容的旧版Cython:
pip3 install cython==0.28.6
重新安装pyproj 1.9.5.1
现在用指定的旧版Cython来编译安装pyproj 1.9.5.1,有两种方式可选:
方式一:用pip指定不隔离构建环境
让pip使用我们已经安装的旧版Cython,而不是自动下载最新版:
pip3 install pyproj==1.9.5.1 --no-build-isolation
方式二:手动编译源码(更稳妥)
如果上面的方式还是报错,可以手动编译:
- 下载pyproj 1.9.5.1的源码包:
wget https://github.com/pyproj4/pyproj/archive/v1.9.5.1rel.tar.gz - 解压并进入目录:
tar xzf v1.9.5.1rel.tar.gz cd pyproj-1.9.5.1rel - 用已安装的Cython编译安装:
python3 setup.py install
最后安装Obspy
等pyproj 1.9.5.1安装成功后,直接安装Obspy即可:
pip3 install obspy
为什么之前的方法失败?
- 直接
pip3 install pyproj==1.9.5.1会自动下载最新版Cython,新Cython生成的代码和旧版Python的线程结构不兼容,导致编译错误。 - 从GitHub直接安装的是pyproj的最新版本,它要求libproj≥6.2.0,和Ubuntu 18.10自带的5.2.0冲突。
- Ubuntu 18.10的软件源里没有libproj 6.2.0对应的依赖包,手动安装deb会导致依赖断裂。
内容的提问来源于stack exchange,提问作者Yuki.kuroshita
相关产品推荐
相关产品推荐

