R/ RStudio - 系统路径问题

R/ RStudio - system path issue

我想我对我的系统路径造成了一些损坏,现在我无法在 RStudio 中编织。我有最新版本的 R 和 RStudio。

这是我正在使用的东西

Sys.getenv()

输出:

__CF_USER_TEXT_ENCODING        0x20C97408:0x0:0x0
Apple_PubSub_Socket_Render     /private/tmp/com.apple.launchd.g6i2lhsTBr/Render
DISPLAY                        :0
DYLD_FALLBACK_LIBRARY_PATH     /Library/Frameworks/R.framework/Resources/lib:/Users/lewa8222/lib:/usr/local/lib:/usr/lib::
EDITOR                         vi
GIT_ASKPASS                    rpostback-askpass
HOME                           /Users/lewa8222
LANG                           en_US.UTF-8
LC_CTYPE                       en_US.UTF-8
LN_S                           ln -s
LOGNAME                        lewa8222
MAKE                           make
PAGER                          /usr/bin/less
PATH                           :/Users/lewa8222/anaconda/bin/python/:/Users/lewa8222/anaconda/bin/python/:/Users/lewa8222/anaconda/bin/python:/Users/lewa8222/anaconda/bin/python:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Library/TeX/texbin
R_BROWSER                      /usr/bin/open
R_BZIPCMD                      /usr/bin/bzip2
R_DOC_DIR                      /Library/Frameworks/R.framework/Resources/doc
R_GZIPCMD                      /usr/bin/gzip
R_HOME                         /Library/Frameworks/R.framework/Resources
R_INCLUDE_DIR                  /Library/Frameworks/R.framework/Resources/include
R_LIBS_SITE                    
R_LIBS_USER                    ~/Library/R/3.3/library
R_PAPERSIZE                    a4
R_PDFVIEWER                    /usr/bin/open
R_PLATFORM                     x86_64-apple-darwin13.4.0
R_PRINTCMD                     lpr
R_QPDF                         /Library/Frameworks/R.framework/Resources/bin/qpdf
R_RD4PDF                       times,inconsolata,hyper
R_SESSION_TMPDIR               /var/folders/43/4q82487d5xsfpxdx6nl_c1wmhckx08/T//RtmpXOclp9
R_SHARE_DIR                    /Library/Frameworks/R.framework/Resources/share
R_SYSTEM_ABI                   osx,gcc,gxx,gfortran,?
R_TEXI2DVICMD                  /usr/local/bin/texi2dvi
R_UNZIPCMD                     /usr/bin/unzip
R_ZIPCMD                       /usr/bin/zip
RMARKDOWN_MATHJAX_PATH         /Applications/RStudio.app/Contents/Resources/resources/mathjax-26
RS_RPOSTBACK_PATH              /Applications/RStudio.app/Contents/MacOS/rpostback
RS_SHARED_SECRET               0255dad0-e77a-4d8c-bba9-0dc9e68fa0ff
RSTUDIO                        1
RSTUDIO_PANDOC                 /Applications/RStudio.app/Contents/MacOS/pandoc
RSTUDIO_SESSION_PORT           23768
RSTUDIO_USER_IDENTITY          lewa8222
RSTUDIO_WINUTILS               bin/winutils
SED                            /usr/bin/sed
SHELL                          /bin/bash
SSH_AUTH_SOCK                  /private/tmp/com.apple.launchd.X0TdgERzV2/Listeners
TAR                            /usr/bin/tar
TMPDIR                         /var/folders/43/4q82487d5xsfpxdx6nl_c1wmhckx08/T/
USER                           lewa8222
XPC_FLAGS                      0x0
XPC_SERVICE_NAME               0

注意路径

Sys.getenv("PATH")

我试图 link 我的 python anaconda 版本作为 RStudio / RMarkdown 中的主要 python 内核。

为此我使用了

Sys.setenv(PATH = paste("/Users/lewa8222/anaconda/bin/python/", Sys.getenv("PATH"), sep=":"))

不知道每次我都认为它是附加到我的路径。

现在,当我尝试使用 rstudio 中的编织按钮编织文件时,它失败如下:

Error: 1:11: unexpected '/'
1: .libPaths(/
              ^
Execution halted

知道如何解决这个 knitr 错误吗?

我花了很多时间在堆栈溢出和 Rstudio 帮助上,但似乎找不到有效的解决方案。 谢谢 利亚

更新!感谢@carsonfarmer

的以下回答

我不得不

  1. 找到我的 .Rprofile 文件。它位于我 MAC 上的主用户目录中。
  2. 然后我用 atom 打开了它(使用任何你喜欢的文本编辑器,但我做到了 atom .Rprofile 在我的文件所在的用户目录中。

当我打开它时,我注意到文件中的文本是这样的:

.libPaths(/Users/lewa8222/anaconda/bin/python)

下面@kevinushey 的评论是正确的 - 我只是不明白 libPaths 是什么知道我有一个文件在某处调用它。

.libPaths - 请注意该路径没有引号。每次我加载 R 时都会收到此错误,但我没有注意到它。

我把路径改成了:

.libPaths("/Users/lewa8222/anaconda/bin/python")

奇迹发生了。错误消失了。 我希望这对其他人有帮助,并感谢所有帮助我解决此问题的人!!

听起来@kevin-ushey 是在正确的轨道上:因为 knitr 基本上是 运行 一个新的 R 实例,每次你编织文档时,它正在加载你的 .RProfile 每次(假设你的用户目录中有一个),我怀疑你的 .RProfile 有那个令人讨厌的 .libPaths(/ 调用。尝试编辑您的 .RProfile 文件...看起来您需要做的就是将其中的任何违规路径用引号引起来:)

运行 来自 R 终端的以下内容应该告诉您用户 .RProfile 在哪里:file.path(Sys.getenv("HOME"), ".Rprofile").

将 anaconda link 转换为 R/RStudio 的最佳方法是设置 RETICULATE_PYTHON 变量的路径

最好的方法是创建一个 .Renviron 文件并将其放入:

RETICULATE_PYTHON="path to anaconda env that you need"