问题描述
我在通过 sf
安装 renv
软件包时遇到问题。我已经在我的 Mac 中从源代码安装了 R,一切都很好。我可以通过 rgdal
安装 sf
和 install.packages
,但无法通过 renv
安装。问题是,即使我指出了完整路径,安装脚本也找不到标题 proj_api.h
。
与
install.packages("sf")
一切正常,无需进一步干预。 renv
内:
> renv::activate()
> renv::install("sf")
....
checking proj_api.h usability... no
checking proj_api.h presence... no
checking for proj_api.h... no
configure: error: proj_api.h not found in standard or given locations.
ERROR: configuration Failed for package ‘sf’
....
proj_api.h
标头位于 /usr/local/include/
下,因此请按照我尝试的文档进行操作:
options(configure.args = c(sf="--with-proj-include=/usr/local/include/"))
在安装之前,但结果相同。我不知道接下来要尝试什么。我不明白为什么没有找到 renv
路径以及为什么没有它们(位置非常标准)。也无法理解,即使我传递了完整路径,怎么可能找不到标题。
没有renv
的环境变量:
__CF_USER_TEXT_ENCODING
0xAF76729:0x0:0x0
_CE_CONDA
_CE_M
CLICOLOR 1
COLUMNS 117
CONDA_EXE /Users/52488/miniconda3/bin/conda
CONDA_PYTHON_EXE /Users/52488/miniconda3/bin/python
CONDA_SHLVL 0
disPLAY /private/tmp/com.apple.launchd.heGiCHqO77/org.xquartz:0
DYLD_FALLBACK_LIBRARY_PATH
/Users/52488/Rinstallation/R-4.0.4/lib:/Library/Java/JavaVirtualMachines/jdk-15.0.2.jdk/Contents/Home/lib/server
EDITOR vi
HOME /Users/52488
LC_ALL en_US.UTF-8
LC_CTYPE UTF-8
LInes 30
LN_S ln -s
LOGNAME 52488
LSCOLORS gxBxhxDxfxhxhxhxhxcxcx
MAKE make
PAGER /usr/bin/less
PATH /Users/52488/miniconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware
Fusion.app/Contents/Public:/opt/X11/bin
PWD /Users/52488
R_ARCH
R_broWSER /usr/bin/open
R_BZIPCMD /usr/bin/bzip2
R_DOC_DIR /Users/52488/Rinstallation/R-4.0.4/doc
R_GZIPCMD /usr/bin/gzip
R_HOME /Users/52488/Rinstallation/R-4.0.4
R_INCLUDE_DIR /Users/52488/Rinstallation/R-4.0.4/include
R_LIBS_SITE
R_LIBS_USER ~/Library/R/4.0/library
R_PAPERSIZE a4
R_PDFVIEWER /usr/local/bin/evince
R_PLATFORM x86_64-apple-darwin17.0
R_PRINTCMD lpr
R_RD4PDF times,inconsolata,hyper
R_SESSION_TMPDIR /var/folders/jb/vpf_9ht52zj_0qk_3r1f0dlw5gfss9/T//Rtmp40nNZi
R_SHARE_DIR /Users/52488/Rinstallation/R-4.0.4/share
R_STRIP_SHARED_LIB strip -x
R_STRIP_STATIC_LIB strip -S
R_SYstem_ABI macos,gcc,gxx,gfortran,gfortran
R_TEXI2DVICMD /usr/local/bin/texi2dvi
R_UNZIPCMD /usr/bin/unzip
R_ZIPCMD /usr/bin/zip
SED /usr/bin/sed
SHELL /usr/local/bin/bash
SHLVL 1
SSH_AUTH_SOCK /private/tmp/com.apple.launchd.1OK1KoT1o5/Listeners
TAR /usr/bin/tar
TERM xterm-256color
TERM_PROGRAM Apple_Terminal
TERM_PROGRAM_VERSION 433
TERM_SESSION_ID 2BA70166-937D-47AB-B6B6-23316D978294
TMPDIR /var/folders/jb/vpf_9ht52zj_0qk_3r1f0dlw5gfss9/T/
USER 52488
xpc_FLAGS 0x0
xpc_SERVICE_NAME 0
使用renv
:
__CF_USER_TEXT_ENCODING
0xAF76729:0x0:0x0
_CE_CONDA
_CE_M
CLICOLOR 1
COLUMNS 117
CONDA_EXE /Users/52488/miniconda3/bin/conda
CONDA_PYTHON_EXE /Users/52488/miniconda3/bin/python
CONDA_SHLVL 0
disPLAY /private/tmp/com.apple.launchd.heGiCHqO77/org.xquartz:0
DYLD_FALLBACK_LIBRARY_PATH
/Library/Frameworks/GDAL.framework/unix/lib:/Users/52488/Rinstallation/R-4.0.4/lib:/Library/Java/JavaVirtualMachines/jdk-15.0.2.jdk/Contents/Home/lib/server
EDITOR vi
HOME /Users/52488
LC_ALL en_US.UTF-8
LC_CTYPE UTF-8
LInes 30
LN_S ln -s
LOGNAME 52488
LSCOLORS gxBxhxDxfxhxhxhxhxcxcx
MAKE make
PAGER /usr/bin/less
PATH /Users/52488/miniconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware
Fusion.app/Contents/Public:/opt/X11/bin
PWD /Users/52488/Documents/staffing
R_ARCH
R_broWSER /usr/bin/open
R_BZIPCMD /usr/bin/bzip2
R_DOC_DIR /Users/52488/Rinstallation/R-4.0.4/doc
R_GZIPCMD /usr/bin/gzip
R_HOME /Users/52488/Rinstallation/R-4.0.4
R_INCLUDE_DIR /Users/52488/Rinstallation/R-4.0.4/include
R_LIBS_SITE
R_LIBS_USER /Users/52488/Documents/staffing/renv/library/R-4.0/x86_64-apple-darwin17.0:/private/var/folders/jb/vpf_9ht52zj_0qk_3r1f0dlw5gfss9/T/Rtmpm4f15L/renv-system-library
R_PAPERSIZE a4
R_PDFVIEWER /usr/local/bin/evince
R_PLATFORM x86_64-apple-darwin17.0
R_PRINTCMD lpr
R_RD4PDF times,hyper
R_SESSION_TMPDIR /var/folders/jb/vpf_9ht52zj_0qk_3r1f0dlw5gfss9/T//Rtmpm4f15L
R_SHARE_DIR /Users/52488/Rinstallation/R-4.0.4/share
R_STRIP_SHARED_LIB strip -x
R_STRIP_STATIC_LIB strip -S
R_SYstem_ABI macos,gfortran
R_TEXI2DVICMD /usr/local/bin/texi2dvi
R_UNZIPCMD /usr/bin/unzip
R_ZIPCMD /usr/bin/zip
RENV_DEFAULT_R_ENVIRON
<NA>
RENV_DEFAULT_R_ENVIRON_USER
<NA>
RENV_DEFAULT_R_LIBS <NA>
RENV_DEFAULT_R_LIBS_SITE
RENV_DEFAULT_R_LIBS_USER
~/Library/R/4.0/library
RENV_DEFAULT_R_PROFILE
<NA>
RENV_DEFAULT_R_PROFILE_USER
<NA>
RENV_PROJECT /Users/52488/Documents/staffing
RETIculaTE_MINICONDA_PYTHON_ENVPATH
/Users/52488/Documents/staffing/renv/python/r-reticulate
SDKROOT /Library/Developer/CommandLinetools/SDKs/MacOSX.sdk
SED /usr/bin/sed
SHELL /usr/local/bin/bash
SHLVL 1
SSH_AUTH_SOCK /private/tmp/com.apple.launchd.1OK1KoT1o5/Listeners
TAR /usr/bin/tar
TERM xterm-256color
TERM_PROGRAM Apple_Terminal
TERM_PROGRAM_VERSION 433
TERM_SESSION_ID 34A286FD-8106-4F78-88F9-8913E45EDCDE
TMPDIR /var/folders/jb/vpf_9ht52zj_0qk_3r1f0dlw5gfss9/T/
USER 52488
xpc_FLAGS 0x0
xpc_SERVICE_NAME 0
三个变量不同,但我猜这很正常:
[1] "PWD" "R_LIBS_USER" "R_SESSION_TMPDIR"
当然有 RENV*
变量只出现在 renv
的情况下。
进一步挖掘并从 this question 中汲取灵感,我检查了 gcc
的包含路径。因renv
而异。
使用renv
:
> system("echo | gcc -Wp,-v -x c++ - -fSyntax-only",intern=TRUE)
clang -cc1 version 12.0.0 (clang-1200.0.32.29) default target x86_64-apple-darwin19.6.0
ignoring nonexistent directory "/Library/Developer/CommandLinetools/SDKs/MacOSX.sdk/usr/local/include"
ignoring nonexistent directory "/Library/Developer/CommandLinetools/SDKs/MacOSX.sdk/Library/Frameworks"
#include "..." search starts here:
#include <...> search starts here:
/Library/Developer/CommandLinetools/usr/bin/../include/c++/v1
/Library/Developer/CommandLinetools/usr/lib/clang/12.0.0/include
/Library/Developer/CommandLinetools/SDKs/MacOSX.sdk/usr/include
/Library/Developer/CommandLinetools/usr/include
/Library/Developer/CommandLinetools/SDKs/MacOSX.sdk/System/Library/Frameworks (framework directory)
End of search list.
没有renv
:
> system("echo | gcc -Wp,intern=TRUE)
clang -cc1 version 12.0.0 (clang-1200.0.32.29) default target x86_64-apple-darwin19.6.0
ignoring nonexistent directory "/Library/Developer/CommandLinetools/SDKs/MacOSX10.15.sdk/usr/local/include"
ignoring nonexistent directory "/Library/Developer/CommandLinetools/SDKs/MacOSX10.15.sdk/Library/Frameworks"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/Library/Developer/CommandLinetools/usr/bin/../include/c++/v1
/Library/Developer/CommandLinetools/usr/lib/clang/12.0.0/include
/Library/Developer/CommandLinetools/SDKs/MacOSX10.15.sdk/usr/include
/Library/Developer/CommandLinetools/usr/include
/Library/Developer/CommandLinetools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks (framework directory)
End of search list.
很明显,在 renv
内部不存在标准的 /usr/local/include
(其他路径也有一些差异)。这是为什么?我该如何解决?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)