在macOS 10.13.2中安装R包sf报错:缺少gfortran文件
解决macOS 10.13.2安装R语言sf包时gfortran缺失的问题
别着急,这个报错本质是因为sf包编译依赖gfortran编译器,但你装的Xcode里并没有自带它,而且Anaconda的bin目录里也找不到对应的gfortran可执行文件。下面给你几个亲测有效的解决步骤:
方法一:通过Homebrew安装gfortran并创建软链接
这是最直接补全缺失文件的方式:
- 先安装Homebrew(如果还没装的话),打开终端运行:
过程中会提示你输入系统密码,按要求操作就行。/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" - 接着安装gcc(Homebrew里gfortran是gcc的一部分):
brew install gcc - 找到gfortran的安装路径,终端输入:
一般会返回which gfortran/usr/local/bin/gfortran,记下来这个路径。 - 给Anaconda的bin目录创建软链接,把gfortran映射成报错提示里找不到的那个文件名:
注意:如果你的Anaconda不是装在用户目录下(比如是ln -s /usr/local/bin/gfortran ~/anaconda3/bin/x86_64-apple-darwin13.4.0-gfortran/usr/local/anaconda3),要把路径里的~/anaconda3改成你实际的安装路径。如果创建时提示权限不够,前面加sudo再运行。
完成以上步骤后,回到R里重新运行install.packages("sf")应该就能正常编译安装了。
方法二:用Conda直接安装预编译的sf包
如果不想折腾编译环境,用Conda安装会更省心,因为它已经处理好了所有依赖:
- 打开终端,运行:
这个命令会从conda-forge频道安装预编译好的sf包,不需要自己编译,也就不会碰到gfortran的问题了。conda install -c conda-forge r-sf
两种方法选一个适合你的就行,我之前在High Sierra上用第一种方法解决过同样的问题,亲测有效。
内容的提问来源于stack exchange,提问作者SM_
相关产品推荐
相关产品推荐

