无法在 Macbook 上加载 tidycensus 和地图视图包 [英] Unable to load tidycensus and map view packages on Macbook

查看:104
本文介绍了无法在 Macbook 上加载 tidycensus 和地图视图包的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 RStudio 中安装了 tidycensusmapview 包,但是当我尝试加载其中一个时出现以下错误:

图书馆(tidycensus)

<块引用>

错误:dyn.load(file, DLLpath = DLLpath, ...) 中tidycensus"的包或命名空间加载失败:无法加载共享对象/Library/Frameworks/R.framework/Versions/4.0/Resources/library/sf/libs/sf.so":dlopen(/Library/Frameworks/R.framework/Versions/4.0/Resources/library/sf/libs/sf.so, 6): 库未加载:/usr/lib/libpq.5.dylib引用自:/Library/Frameworks/R.framework/Versions/4.0/Resources/library/sf/libs/sf.so原因:找不到图片

库(地图视图)

<块引用>

错误:dyn.load(file, DLLpath = DLLpath, ...) 中mapview"的包或命名空间加载失败:无法加载共享对象/Library/Frameworks/R.framework/Versions/4.0/Resources/library/sf/libs/sf.so":dlopen(/Library/Frameworks/R.framework/Versions/4.0/Resources/library/sf/libs/sf.so, 6): 库未加载:/usr/lib/libpq.5.dylib引用自:/Library/Frameworks/R.framework/Versions/4.0/Resources/library/sf/libs/sf.so原因:找不到图片

我已经尝试过这个解决方案,但它没有解决我的问题.

解决方案

今天升级到 Big Sur 时确实发生了这个问题.经过研究,我终于在这里找到了解决方案:

复制 libpq.5.dylib 到/usr/lib/libpq.5.dylib

看起来 macOS 正在关闭 /usr/lib 上的库.基本上需要将 /usr/lib/libpq.5.dylib 指向另一个 libpq,就像你用 Homebrew 安装它一样.

这对我有用,首先在 R 中卸载 sfrgdal 包,并在需要时使用 HomeBrew 安装 libpq:

$ brew install libpq

检查库是否指向自身:

$ otool -l/usr/local/Cellar/libpq/13.0/lib/libpq.5.dylib |fgrep -A2 LC_ID_DYLIB

如果不是,则将其指向自己:

$ sudo install_name_tool -id/usr/local/Cellar/libpq/13.0/lib/libpq.5.dylib/usr/local/Cellar/libpq/13.0/lib/libpq.5.dylib

并将 libpq 的新路径链接到引用它的每个 R 包二进制文件:

$ sudo install_name_tool -change/usr/lib/libpq.5.dylib [new_path] [path_to_binary]

在这种情况下,对于 sfrgdal:

$ sudo install_name_tool -change/usr/lib/libpq.5.dylib/usr/local/Cellar/libpq/13.1/lib/libpq.5.dylib/Library/Frameworks/R.framework/Versions/4.0/Resources/library/sf/libs/sf.so$ sudo install_name_tool -change/usr/lib/libpq.5.dylib/usr/local/Cellar/libpq/13.1/lib/libpq.5.dylib/Library/Frameworks/R.framework/Versions/4.0/Resources/library/rgdal/libs/rgdal.so

I installed the packages tidycensus and mapview in RStudio but I get the following error when I try load either one:

library(tidycensus)

Error: package or namespace load failed for ‘tidycensus’ in dyn.load(file, DLLpath = DLLpath, ...): unable to load shared object '/Library/Frameworks/R.framework/Versions/4.0/Resources/library/sf/libs/sf.so': dlopen(/Library/Frameworks/R.framework/Versions/4.0/Resources/library/sf/libs/sf.so, 6): Library not loaded: /usr/lib/libpq.5.dylib Referenced from: /Library/Frameworks/R.framework/Versions/4.0/Resources/library/sf/libs/sf.so Reason: image not found

library(mapview)

Error: package or namespace load failed for ‘mapview’ in dyn.load(file, DLLpath = DLLpath, ...): unable to load shared object '/Library/Frameworks/R.framework/Versions/4.0/Resources/library/sf/libs/sf.so': dlopen(/Library/Frameworks/R.framework/Versions/4.0/Resources/library/sf/libs/sf.so, 6): Library not loaded: /usr/lib/libpq.5.dylib Referenced from: /Library/Frameworks/R.framework/Versions/4.0/Resources/library/sf/libs/sf.so Reason: image not found

I've tried this solution but it is not solving my problem.

解决方案

This issue indeed happened to me today when upgraded to Big Sur. After researching, finally I found a solution here:

copy libpq.5.dylib to /usr/lib/libpq.5.dylib

Looks like macOS is keeping libraries on /usr/lib closed. Basically is needed to point back /usr/lib/libpq.5.dylib against another libpq, like the one you get by installing it with Homebrew.

This is what worked for me, first uninstall sf and rgdal packages in R and use HomeBrew to install libpq if needed:

$ brew install libpq

Check if library is pointing itself:

$ otool -l /usr/local/Cellar/libpq/13.0/lib/libpq.5.dylib | fgrep -A2 LC_ID_DYLIB

If not, point it against itself:

$ sudo install_name_tool -id /usr/local/Cellar/libpq/13.0/lib/libpq.5.dylib /usr/local/Cellar/libpq/13.0/lib/libpq.5.dylib

And link the new path of libpq to each R package binary that references to it:

$ sudo install_name_tool -change /usr/lib/libpq.5.dylib [new_path] [path_to_binary]

In this case, for sf and rgdal:

$ sudo install_name_tool -change /usr/lib/libpq.5.dylib /usr/local/Cellar/libpq/13.1/lib/libpq.5.dylib /Library/Frameworks/R.framework/Versions/4.0/Resources/library/sf/libs/sf.so

$ sudo install_name_tool -change /usr/lib/libpq.5.dylib /usr/local/Cellar/libpq/13.1/lib/libpq.5.dylib /Library/Frameworks/R.framework/Versions/4.0/Resources/library/rgdal/libs/rgdal.so

这篇关于无法在 Macbook 上加载 tidycensus 和地图视图包的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆