【发布时间】:2016-09-05 06:48:50
【问题描述】:
所以我从 Python subprocess.popen 调用一个外部可执行文件(Rscript.exe 作为R portable 的一部分)。
从 32 位 python 调用,它可以工作。
从64位python调用,R抱怨找不到各种包,所以有些不一样。
不应进行任何文件系统重定向(Rscript.exe 的路径不在程序文件中)
这可能是 python 问题、R 问题或两者兼而有之。为什么根据称为 popen 的进程的位数,任何事物的行为都会有所不同?从 Rscript 的角度来看,我可以强制来自 64 位 python 的调用看起来像 32 位调用吗?
【问题讨论】:
-
你能把代码和错误信息贴出来吗?
-
这是在 Windows 上吗?为什么不使用 R64?
-
请检查 PATH、当前目录和任何库路径以获取来自两个 python 的调用。
-
使用linux,遇到过类似的情况。我使用
system("sh -c 'unset LD_LIBRARY_PATH;executable'")修复了这个问题在 Windows 上,可能是 PATH 设置错误,即加载了错误的 DLL -
更新:已解决。这不是位问题。 Popen 将环境变量传递给子进程。我在
Popen调用中设置了env={},它现在可以工作了。
标签: python r subprocess 32bit-64bit