R / RStudio - 系统路径问题

时间:2017-01-30 18:07:30

标签: r rstudio knitr r-markdown

我认为我对系统路径造成了一些损害,现在我无法编入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")

我试图将我的anaconda版本的python链接为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帮助上,似乎无法找到有效的解决方案。 谢谢 利亚

UPDATE!感谢@carsonfarmer的答案

我不得不

  1. 找到我的.Rprofile文件。这位于我MAC上的家庭用户目录中。
  2. 然后我用原子打开它(使用你喜欢的任何文本编辑器,但我做了 原子.Rprofile在我的用户目录中,文件是。
  3. 当我打开它时,我注意到文件中的文字是这样的:

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

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

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

    我将路径更改为:

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

    魔法发生了。错误消失了。 我希望这可以帮助别人,谢谢帮助我解决这个问题的所有人!

1 个答案:

答案 0 :(得分:1)

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

R终端运行以下内容会告诉您用户.RProfile的位置:file.path(Sys.getenv("HOME"), ".Rprofile")