因此,我使用Python的
subprocess.popen
调用外部可执行文件(作为R portable的一部分的Rscript.exe
)。
从32位Python中调用时,它可以正常工作。
从64位Python中调用时,R会抱怨找不到各种包,因此有些东西是不同的。
不应该有任何文件系统重定向发生(Rscript.exe
的路径不在程序文件中)
这可能是一个Python问题,一个R问题,或者两者都有。为什么任何事情都会根据调用popen的进程的位数而表现得不同?我能否从Rscript的角度强制从64位Python进行的调用看起来像从32位调用?
system("sh -c 'unset LD_LIBRARY_PATH;executable'")
修复了这个问题。在Windows上,可能是路径设置错误,即加载了错误的DLL文件。 - Jens MunkPopen
调用中设置了env={}
,现在它可以工作了。 - Sideshow Bob