Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试从python运行逻辑时出错sh:logic:未找到命令_Python_Sh - Fatal编程技术网

尝试从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来执行命令。