Python引入rpy2包用pyinstaller打包后的exe无法正常使用

  1. 因项目需要,需要使用R语言的一些库进行计算,所以博主采用rpy2这个库作为中间件,进行混编。将R得到的结果返回至python使用。
import rpy2.robjects as robjects
from rpy2.robjects import pandas2ri
pandas2ri.activate()
robjects.r['library']('你需要的库')

       2. 核心代码如上图所示,可以在python环境下可以正常使用,得到正确结果。但是将上述代码用pyinstaller  -D xxx.py 打包至exe时提升成果打包。但在cmd运行后,程序中断。回到代码定位在哪进行中断时,发现运行至下图时,导致exe运行到这儿中断。

import rpy2.robjects as robjects

     3. 问题定位:

     整个打包exe过程是没问题的,再运行rpy2之前的代码也是可以出结果的。分析发现也不是R_HOME与R_USER的问题,因为我尝试再改变R_HOME的环境变量时,运行exe时是会出现问题的,提示 rlib = _dlopen_rlib(R_HOME),无法找到R.dll。猜测是rpy2被打包过程中,一些混编需要的库没有被打包进来导致。但因为后续的运行过程中,不会再报错,因此问题很难进行定位。欢迎大家在评论区讨论!

你可能感兴趣的:(Python,r语言,开发语言,python,R与python混编)