我已经在 cmd 中使用“pip install rpy2”安装了 R,然后安装了 rpy2。运行网上找到的随机简单 rpy2 代码示例后,我收到此错误消息(此错误消息实际上是由 cmd 中的“python -m rpy2.situation”生成的,因为 vscode 中的错误消息是此错误消息的较小版本,信息较少):
C:\Users\richardg>python -m rpy2.situation
rpy2 version:
3.5.13
Python version:
3.11.3 (tags/v3.11.3:f3909b8, Apr 4 2023, 23:49:59) [MSC v.1934 64 bit (AMD64)]
Looking for R's HOME:
Environment variable R_HOME: C:\Program Files\R\R-4.3.1
InstallPath in the registry: C:\Program Files\R\R-4.3.1
Environment variable R_USER: C:\Program Files\R\r_user_directory_path
Environment variable R_LIBS_USER: C:\Program Files\R\r_libs_user
R version:
In the PATH: R version 4.3.1 (2023-06-16 ucrt) -- "Beagle Scouts"
Loading R library from rpy2: cannot load library 'C:\Program Files\R\R-4.3.1\bin\x64\R.dll': error 0x7e
Additional directories to load R packages from:
None
C extension compilation:
'sh' is not recognized as an internal or external command,
operable program or batch file.
Warning: Unable to get R compilation flags.
Directory for the R shared library:
'sh' is not recognized as an internal or external command,
operable program or batch file.
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "C:\Users\richardg\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\rpy2\situation.py", line 496, in <module>
for row in iter_info():
File "C:\Users\richardg\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\rpy2\situation.py", line 454, in iter_info
yield get_r_libnn(r_home)
^^^^^^^^^^^^^^^^^^^
File "C:\Users\richardg\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\rpy2\situation.py", line 263, in get_r_libnn
return _get_r_cmd_config(r_home, 'LIBnn',
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\richardg\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\rpy2\situation.py", line 246, in _get_r_cmd_config
output = subprocess.check_output(
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.1008.0_x64__qbz5n2kfra8p0\Lib\subprocess.py", line 466, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.1008.0_x64__qbz5n2kfra8p0\Lib\subprocess.py", line 571, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '('C:\\Program Files\\R\\R-4.3.1\\bin\\x64\\R', 'CMD', 'config', 'LIBnn')' returned non-zero exit status 1.
我从尝试解决此问题的徒劳尝试中得到的结论是,这里有两件事很重要:
我尝试过的 关于1.-
关于2.-
import ctypes
def main():
print("Hello from Python!")
if __name__ == "__main__":
main()