操作系统错误:无法加载库'C:\ Program Files \ R \ R-4.0.2 \ bin \ x64 \ R.dll':错误0x7e。

5

我试图将rpy2库导入Jupyter Notebook,但我无法解决这个错误。

已经添加了路径'C:\Program Files\R\R-4.0.2\bin\x64'。

这是我电脑上唯一安装的R版本。我已经完全卸载并重新安装了R/Rstudio/Anaconda,但仍然没能解决问题。

以下是完整的错误信息:

---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
<ipython-input-7-098f0d39b3a3> in <module>
----> 1 from rpy2.robjects import pandas2ri

C:\Anaconda\lib\site-packages\rpy2\robjects\__init__.py in <module>
     14 from functools import partial
     15 import types
---> 16 import rpy2.rinterface as rinterface
     17 import rpy2.rlike.container as rlc
     18 

C:\Anaconda\lib\site-packages\rpy2\rinterface.py in <module>
      4 import typing
      5 from typing import Union
----> 6 from rpy2.rinterface_lib import openrlib
      7 import rpy2.rinterface_lib._rinterface_capi as _rinterface
      8 import rpy2.rinterface_lib.embedded as embedded

C:\Anaconda\lib\site-packages\rpy2\rinterface_lib\openrlib.py in <module>
     42     rlib = _rinterface_cffi.lib
     43 else:
---> 44     rlib = _dlopen_rlib(R_HOME)
     45 
     46 

C:\Anaconda\lib\site-packages\rpy2\rinterface_lib\openrlib.py in _dlopen_rlib(r_home)
     35         raise ValueError('The library path cannot be None.')
     36     else:
---> 37         rlib = ffi.dlopen(lib_path)
     38     return rlib
     39 

OSError: cannot load library 'C:\Program Files\R\R-4.0.2\bin\x64\R.dll': error 0x7e

编辑:

这里是我运行的导入rpy2库的代码:

from rpy2.robjects import r, pandas2ri

你能提供更多细节吗?是什么导致了错误信息的出现? - Werner Hertzog
1
请发布能够引发错误的代码。仅有错误信息是不够有用的。 - Parfait
我提供了我用来导入rpy2库的代码。 - Grayson Felt
你尝试过重新启动内核或Jupyter服务器吗? - Quantum Dreamer
我已经重启了内核、服务器和电脑,但错误仍然存在。 - Grayson Felt
4个回答

7

这是我的工作解决方案:

import os
os.environ["R_HOME"] = r"D:\Install\R\R-3.6.1"
os.environ["PATH"]   = r"D:\Install\R\R-3.6.1\bin\x64" + ";" + os.environ["PATH"]
import rpy2
from rpy2.robjects import pandas2ri, packages
pandas2ri.activate()
stats = packages.importr('stats')

1
“r"D:\Install\R\R-3.6.1"” 是指什么? - msh855

3

1 - Windows + IDE

对于那些没有使用Anaconda的人,在Windows环境变量PATH中添加以下内容:

C:\Program Files\R\R-4.0.3\bin\x64

你的R版本可能与“ R-4.0.3”不同。

2 - Anaconda

否则,请参考Grayson Felt的回复:

我在这里找到了解决方案。

添加路径

C:\Users\username\Anaconda2;C:\Users\username\Anaconda2\Scripts;C:\Users\username\Anaconda2\Library\bin;C:\Users\username\Anaconda2\Library\mingw-w64\lib;C:\Users\username\Anaconda2\Library\mingw-w64\bin

然后重新启动Anaconda即可解决问题。

3 - Code header Windows basic

或者按照Bruno的建议(更加复杂)进行操作:

try:
    import rpy2.robjects as robjects
except OSError as e:
    try:
        import os
        import platform
        if ('Windows', 'Microsoft') in platform.system():
            os.environ["R_HOME"] = 'C:/Program Files/R/R-4.0.3/bin/x64'  # Your R version here 'R-4.0.3'
            os.environ["PATH"] = "C:/Program Files/R/R-4.0.3/bin/x64" + ";" + os.environ["PATH"]
        import rpy2.robjects as robjects
    except OSError:
        raise(e)

这段代码在非Windows平台上可能无效。对于不同的R版本,可能需要进行调整。如果情况变得比这更复杂,您应该考虑使用解决方案1或2。

注意: 如果您的Python和R版本架构不同(x86 vs x64),您也可能会遇到此问题。


0

在导入 r 包之前,将其放置在顶部进行导入。

import os
os.environ["R_HOME"] = r"C:\\Program Files\\R\\R-4.2.1" 
os.environ["PATH"] = r"C:\\Program Files\\R\\R-4.2.1\\bin\\x64" + ";" + 
    os.environ["R_HOME"] 

0
try:
    import rpy2.robjects as robjects

except OSError as e:

    try:
        import os
        import platform
        if 'Windows' in platform.system():
            os.environ["R_HOME"] = 'C:/Program Files/R/R-4.2.1'
            os.environ["PATH"] = "C:/Program Files/R/R-4.2.1/bin/x64;" + os.environ["PATH"]
        import rpy2.robjects as robjects
    except OSError:
        raise e

1
回答需要支持信息 您的回答可以通过提供更多的支持信息来改进。请[编辑]以添加进一步的细节,例如引用或文档,以便他人可以确认您的回答是否正确。您可以在帮助中心找到关于如何撰写良好回答的更多信息。 - moken

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接