【问题标题】:print imagemagick convert output to browser打印 imagemagick 将输出转换为浏览器
【发布时间】:2016-04-03 20:14:34
【问题描述】:

我有以下代码:

import subprocess
convertargs = ['convert', 'image1.tif', 'img2.tif', 'pdf:-']
print "Content-type: application/pdf\r\n\r\n"

pdf = subprocess.Popen(convertargs, stdout=subprocess.PIPE)
pdf, error = pdf.communicate()

print pdf

应该带convertargs,用imagemagick的convert把图片转成pdf。

我知道这是可行的,因为当我在 shell 上运行以下命令时:

./pdf.py > test.pdf

它为我创建了一个带有正确图像的简洁 PDF。但是,当我访问 www.myhost.com/pdf.py 时,它不起作用。我不知道为什么。 这是我的 apache 错误日志所说的:

Traceback (most recent call last):: /Library/WebServer/Documents/pdf.py
   File "/Library/WebServer/Documents/pdf.py", line 59, in <module>: /Library/WebServer/Documents/pdf.py
     pdf = subprocess.Popen(convertargs, stdout=subprocess.PIPE): /Library/WebServer/Documents/pdf.py
   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 710, in __init__: /Library/WebServer/Documents/pdf.py
     errread, errwrite): /Library/WebServer/Documents/pdf.py
   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1335, in _execute_child: /Library/WebServer/Documents/pdf.py
     raise child_exception: /Library/WebServer/Documents/pdf.py
OSError: [Errno 2] No such file or directory: /Library/WebServer/Documents/pdf.py

【问题讨论】:

    标签: python imagemagick imagemagick-convert


    【解决方案1】:

    subprocess.Popen 找不到convert,可能是因为网络服务器使用了不同的 $PATH。尝试将完整路径提供给convert,而不仅仅是convert

    【讨论】:

    • 啊!谢谢。使用 convert 的完整路径解决了这个问题。
    猜你喜欢
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 2021-02-09
    • 2016-06-26
    • 2018-07-20
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多