2015-11-12 188 views
1

我想从python 3.3(mac osx 10.7.5)运行wkhtmltopdf(一个将html转换为pdf的例程:http://wkhtmltopdf.org)命令。从python 3.3运行终端命令3.3

例程作品就像一个魅力时直接与下面的命令终端上运行:

wkhtmltopdf http:google.com /Users/ME/Desktop/google.pdf 

其中http:google.com是将在该目标文件被转换为PDF的HTML:/用户/ ME /桌面/ google.pdf

但是从蟒蛇调用shell时:

import subprocess 

subprocess.call(["wkhtmltopdf http:google.com /Users/ME/Desktop/google.pdf"]) 

我得到:

> Traceback (most recent call last): File "<pyshell#5>", line 1, in 
<module> 
    subprocess.call(["wkhtmltopdf http:google.com /Users/thenoze/Desktop/google.pdf"]) File 
"/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/subprocess.py", 
line 523, in call 
    with Popen(*popenargs, **kwargs) as p: File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/subprocess.py", 
line 824, in __init__ 
    restore_signals, start_new_session) File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/subprocess.py", 
line 1448, in _execute_child 
    raise child_exception_type(errno_num, err_msg) FileNotFoundError: [Errno 2] No such file or directory: 'wkhtmltopdf http:google.com /Users/ME/Desktop/google.pdf' 

- >任何导致如何格式化我的subprocess.call()?

回答

0

独立命令行参数作为列表项:

subprocess.call(["wkhtmltopdf", "http:google.com", "/Users/ME/Desktop/google.pdf"]) 

否则,wkhtmltopdf ... google.pdf被视为一个节目的路径,而不是wkhtmltopdf

+0

感谢您关注此事。 看来,如果我直接用python在终端窗口中运行它,它的工作原理是完美的。但是,当使用python例程时,它无法识别'wkhtmltopdf'。 我买了它是因为终端中的路径与* .py一样运行时与python不一样。但它也没有效果。 你认为这可能是什么? –