无法在 Macbook 上加载 tidycensus 和地图视图包 [英] Unable to load tidycensus and map view packages on Macbook
问题描述
我在 RStudio 中安装了 tidycensus
和 mapview
包,但是当我尝试加载其中一个时出现以下错误:
图书馆(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 中卸载 sf
和 rgdal
包,并在需要时使用 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]
在这种情况下,对于 sf
和 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
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屋!