"Snažím sa spustiť príkaz shell cez Python kód, ale ja nie som schopný pochopiť, prečo to zlyháva."
Pri tlači príkazu a jeho prilepení do shellu sa pokúste spustiť priamo v poriadku, to je zvláštna časť.
Z jazyka Python I dostávam nasledujúce informácie:
/bin/sh: -c: line 0: syntax error near unexpected token `("
/bin/sh: -c: line 0: `/DATA/NGS/ngs_software/bioinfoSoftware/bwa_current/bwa mem ... --threads 4 -T /tmp/samTemp -"
Je tu niečo, čo som "m chýba? Môj kód vyzerá takto, kde" cmd "je reťazec s príkazom. OS je CentOS s bash shell:
process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
out = process.stdout.readline()
out = out.decode("utf-8").strip("n")
odpovede:
0 pre odpoveď č. 1Váš príkaz obsahuje substitúciu procesu, ale Popen
používa príkaz /bin/sh
, Pri spustení ako /bin/sh
, bash
neumožňuje substitúcie procesov. Môžete explicitne požiadať o spustenie príkazu bash
pomocou executable
voľba.
process = subprocess.Popen(cmd, shell=True, executable="/bin/bash", stdout=subprocess.PIPE)