Я пытаюсь запустить pdflatex в .tex-файле из Python 2.4.4. подпроцесс (на mac):pdflatex в подпроцессе python на mac
import subprocess
subprocess.Popen(["pdflatex", "fullpathtotexfile"], shell=True)
который фактически ничего не делает. Тем не менее, я могу запустить «pdflatex fullpathtotexfile» в терминале без проблем, создавая pdf. Что мне не хватает?
[EDIT] Как предлагается в одном из ответов, я попробовал:
return_value = subprocess.call(['pdflatex', '/Users/Benjamin/Desktop/directory/ON.tex'], shell =False)
который терпит неудачу с:
Traceback (most recent call last):
File "/Users/Benjamin/Desktop/directory/generate_tex_files_v3.py", line 285, in -toplevel-
return_value = subprocess.call(['pdflatex', '/Users/Benjamin/Desktop/directory/ON.tex'], shell =False)
File "/Library/Frameworks/Python.framework/Versions/2.4//lib/python2.4/subprocess.py", line 413, in call
return Popen(*args, **kwargs).wait()
File "/Library/Frameworks/Python.framework/Versions/2.4//lib/python2.4/subprocess.py", line 543, in __init__
errread, errwrite)
File "/Library/Frameworks/Python.framework/Versions/2.4//lib/python2.4/subprocess.py", line 975, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
файл существует, и я могу запустить pdflatex /Users/Benjamin/Desktop/directory/ON.tex
в Терминал. Обратите внимание, что pdflatex делает бросить большое количество предупреждений ... но это не имеет значения, и это также дает ту же ошибку:
return_value = subprocess.call(['pdflatex', '-interaction=batchmode', '/Users/Benjamin/Desktop/directory/ON.tex'], shell =False)
примечание: 'shell = False' является значением по умолчанию (вам не нужно передавать его явно) – jfs