无法在 VSCode 中运行 rpy2 库(错误 0x7e)

问题描述 投票:0回答:1

我对这个领域真的很陌生,所以我必须探索 Vscode 中的一些新功能。我曾尝试在 python intrepeter 上运行 rscript 。但它可能无法解决很多问题。首先是测试代码

from rpy2 import robjects 
pi = robjects.r['pi'] 
pi

在终端上,我得到这样的声明:

rpy2\rinterface_lib\openrlib.py", line 51, in _dlopen_rlib
    rlib = ffi.dlopen(lib_path)
           ^^^^^^^^^^^^^^^^^^^^
OSError: cannot load library 'C:\Program Files\R\R-4.3.1\bin\x64\R.dll': error 0x7e

我尝试了另一种解决方案来使用子进程功能打开R脚本,但它又遇到了麻烦。

retcode = subprocess.call(["C:/Users/X/.vscode-R/RScript", "Testing_F.r"])              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.1776.0_x64__qbz5n2kfra8p0\Lib\subprocess.py", line 389, in call     
    with Popen(*popenargs, **kwargs) as p:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^

有人用 rpy2 处理同样的问题吗?我该如何应对?

我在 Colab 上尝试过这个,然后它就可以正常工作,不会出现任何错误。

python r dll subprocess rpy2
1个回答
0
投票

从 Python 3.8 开始,出于安全原因,设置 PATH 不再对解析 DLL 产生影响。相反,在加载之前显式包含 DLL 路径

rpy2
:

import os
os.add_dll_directory(r"path_to_R/bin/x64/")  # E.g., "C:/Program Files/R/R-4.3.1/bin/x64"
from rpy2.robjects.packages import importr

这个答案有更多细节。

© www.soinside.com 2019 - 2024. All rights reserved.