pdflatex在mac上的python子进程中
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了pdflatex在mac上的python子进程中,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1900字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试从Python 2.4.4在.tex文件上运行pdflatex.子进程(在mac上):
import subprocess
subprocess.Popen(["pdflatex", "fullpathtotexfile"], shell=True)
这实际上什么也没做.但是,我可以在终端中运行“pdflatex fullpathtotexfile”而不会出现问题,生成pdf.我错过了什么?
[编辑]
正如其中一个答案所示,我试过:
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)
解决方法:
使用便利功能,subprocess.call
你不需要在这里使用Popen,打电话就足够了.
例如:
>>> import subprocess
>>> return_value = subprocess.call(['pdflatex', 'textfile'], shell=False) # shell should be set to False
如果调用成功,则return_value将设置为0,否则为1.
Popen的用法通常适用于您希望存储输出的情况.例如,您想使用命令uname检查内核版本并将其存储在某个变量中:
>>> process = subprocess.Popen(['uname', '-r'], shell=False, stdout=subprocess.PIPE)
>>> output = process.communicate()[0]
>>> output
'2.6.35-22-generic\n'
再次,永远不要设置shell = True.
内容总结
以上是互联网集市为您收集整理的pdflatex在mac上的python子进程中全部内容,希望文章能够帮你解决pdflatex在mac上的python子进程中所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。