尝试从python运行逻辑时出错sh:logic:未找到命令
我需要在一些数据文件上运行这个程序。当我在命令行中键入它时,它通常是这样工作的:尝试从python运行逻辑时出错sh:logic:未找到命令,python,sh,Python,Sh,我需要在一些数据文件上运行这个程序。当我在命令行中键入它时,它通常是这样工作的: logic ./ case 我尝试从python脚本中调用它,如下所示: def runLogic(pProtocol): p = 2 base = os.path.basename(pProtocol[0]) path = pProtocol[0].rstrip(base) for i in range (1,int(pProtocol[1
logic ./ case
我尝试从python脚本中调用它,如下所示:
def runLogic(pProtocol):
p = 2
base = os.path.basename(pProtocol[0])
path = pProtocol[0].rstrip(base)
for i in range (1,int(pProtocol[1])+1):
pAlpha = float(pProtocol[p])
pl = float(pProtocol[p+1])
case = 'Einlauf_Lippe_alpha%sdeg_l%smm'%(pAlpha, pl)
# Write mini Python scriptfile
pyPath = str(pProtocol[0])+'/Einlauf_Lippe_alpha%sdeg_l%smm/'%(pAlpha, pl)
PyScript = "import os\n\ndef executeLogic():\n case = '%s'\n os.system('logic ./ %%s'%%case)\n\nexecuteLogic()"%case
pyfile=open(pyPath + 'executeLogic.py', 'w')
pyfile.write(PyScript)
pyfile.close()
# Run local PyScript
os.system('python %sexecuteLogic.py'%pyPath)
# Remove local PyScript
os.system('rm %sexecuteLogic.py'%pyPath)
p = p + 2
i = i + 1
为了在要处理文件的目录中创建本地python脚本,请尝试执行它。迷你脚本如下所示:
import os
def executeLogic():
case = 'Einlauf_Lippe_alpha7.5deg_l9.0mm'
#print 'logic ./ %s'%case
os.system('logic ./ %s'%case)
executeLogic()
当我只需在终端中键入行logic./case
时,它就可以正常工作。当我尝试从python启动它时,我得到以下结果:
sh: logic: command not found
而
logic
命令位于$PATH
?逻辑位于'/usr/local/quaflow/bin/logic'中,这不是标准路径。是否已将其添加到shells$PATH
环境变量中?否则外壳就找不到了,我该怎么做?还有其他方法可以告诉python在哪里找到逻辑吗?唯一的方法是在调用python脚本之前设置路径。显然,您这样做是为了“手动”命令起作用。另外,您应该知道,os.system
函数调用shell来执行命令。