2015-11-12 236 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不一樣。但它也沒有效果。 你認爲這可能是什麼? –