624 字
3 分钟
通过wheel文件解决rpy2安装权限问题

问题背景#

最近在尝试Python与R语言交互时,需要安装rpy2这个包。按照常规方式使用pip安装时,却不断遇到各种各样的错误:

Terminal window
File "Z:\ProgramData\miniconda3\Lib\subprocess.py", line 1538, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [WinError 5] Access is denied
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.

还有其他各种各样的问题,在重新设置 R_HOME (https://www.cnblogs.com/Xeonilian/p/windows_rpy2_install.html) 、安装 R_Tools (https://blog.csdn.net/BioFlorist/article/details/121665959) 、安装 MinGW 等等方法都无法解决。 这个问题困扰了我整整两天,尝试了各种方法都未能解决。 甚至到了我一度以为是rpy2不支持windows(在rpy2的官网上,他说对windows的支持不由官方提供,而是由社区提供),但是我同学却轻轻松松安装成功了。

解决方案#

在多次尝试失败后,网上别人推荐使用conda安装的方法,但是那种虽然能安装,但是却使用的是conda安装的R环境,而不是我本地的R环境。有大量的R包需要重装。 在找了许久之后,我发现可以通过预编译的wheel文件来绕过编译问题。 但是,网上很多教程用的是托管在www.lfd.uci.edu的wheel包,但是维护托管网站的教授因为服务器费用问题,已经关闭不再提供对rpy2的托管。 不过后来经过寻找,我在piwheels网站上找到了预编译好的rpy2 wheel文件。 虽然没有很多版本的wheel文件,最新的稳定版3.5.17也没有,只有3.6.0.dev2 pre-release,但是怎么说都比没有强很多了。

另外,官网上也有些R和rpy2的兼容性情况

安装步骤#

  1. 访问piwheels
  2. 根据你的python版本,找到对应的wheel文件
  3. 下载wheel文件到本地
  4. 打开命令行,使用以下命令安装:
Terminal window
pip install 你下载的wheel文件路径

安装要点#

安装前请确保系统中已经正确配置了R语言环境,rpy2需要调用R的库文件。

总结#

当pip编译rpy2出现错误时,可以去www.piwheels.org试试看,能不能搜到预编译的wheel文件。 虽然这个过程有点曲折,但希望我的经历能帮助到遇到类似问题的你,少走一些弯路。

通过wheel文件解决rpy2安装权限问题
https://tski.uk/blog/rpy2-install-via-wheel/
作者
Tokisaki Galaxy
发布于
2025-02-27
许可协议
CC BY