我尝试在SAP BODS脚本中使用ksh执行python命令,在BODS服务器中运行一个名为 "zz.py "的程序。
print(exec('ksh', '-c "python --version"', 8));
print(exec('ksh', '-c "python zzz.py"', 8));
然而,在执行该脚本时,我得到了以下输出。
3850 2990602048 PRINTFN 11/2/2017 4:26:17 PM 0: Python 2.7.9
3850 2990602048 PRINTFN 11/2/2017 4:26:17 PM 1: Could not find platform independent libraries <prefix> Could not find platform dependent libraries <exec_prefix>
3850 2990602048 PRINTFN 11/2/2017 4:26:17 PM Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>] ImportError: No module named site
当我继续添加 export PYTHONHOME=/usr/bin/python
,并执行 printenv
命令,但没有显示PYTHONHOME路径。
我继续使用SSH通过PuTTy访问服务器,执行命令完美地工作。然而,当运行 python --version
命令,它显示我的版本是2.7.5,而不是BODS中显示的版本。我试着添加PYTHONHOME路径,但在BODS中没有任何帮助(相反,我无法在SSH会话中运行python命令,当然,我去了 unset
它和SSH会话现在正常工作)
我可以寻求一些帮助吗?THANKS!
解决了这个问题。
当从BODS执行时,使用了不同的用户(而不是SSH使用的root)。在执行python之前,必须设置 "export LD_LIBRARY_PATH=usrlocallib",然后就可以了。