- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Ghostscript 从 Django 内部将 pdf 转换为 jpg,但是当我尝试使用 subprocess.popen 运行 Ghostscript 命令时,出现“找不到文件”错误。如果我通过命令行从 py 文件运行完全相同的脚本,它可以正常工作。
这是我的脚本:
import os
import subprocess
path = "/tmp/e15hntd/"
### this next line is what seems to cause the file not found error
sp = subprocess.Popen("gs -dSAFER -dNOPAUSE -dQUIET -dBATCH -sDEVICE=jpeg -sOUTPUTFILE=" + path + "/static.jpg " + path + "/source.pdf")
在寻找可能的解决方案后,我尝试了有问题的行的几个替代版本,例如:
sp = subprocess.Popen(['gs', '-dSAFER', '-dNOPAUSE', '-dQUIET', '-dBATCH', '-sDEVICE=jpeg', '-sOUTPUTFILE=' + path + "/static.jpg", path + "/source.pdf"])
或者:
sp = subprocess.call("gs -dSAFER -dNOPAUSE -dQUIET -dBATCH -sDEVICE=jpeg -sOUTPUTFILE=" + path + "/static.jpg " + path + "/source.pdf")
这是完整的错误:
[Errno 2]没有这样的文件或目录
回溯:
File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/options.py" in wrapper
366. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/django/utils/decorators.py" in _wrapped_view
91. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/django/views/decorators/cache.py" in _wrapped_view_func
89. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/sites.py" in inner
196. return view(request, *args, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/django/utils/decorators.py" in _wrapper
25. return bound_func(*args, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/django/utils/decorators.py" in _wrapped_view
91. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/django/utils/decorators.py" in bound_func
21. return func(self, *args2, **kwargs2)
File "/usr/local/lib/python2.6/dist-packages/django/db/transaction.py" in inner
209. return func(*args, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/django/contrib/admin/options.py" in change_view
1054. self.save_model(request, new_object, form, True)
File "/home/Django/Update/admin.py" in save_model
41. sp = subprocess.call("gs -dSAFER -dNOPAUSE -dQUIET -dBATCH -sDEVICE=jpeg -sOUTPUTFILE=" + unique_path + "/static.jpg " + unique_path + "/source.pdf" + unique_path + "/source.pdf")
File "/usr/lib/python2.6/subprocess.py" in call
480. return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.6/subprocess.py" in __init__
633. errread, errwrite)
File "/usr/lib/python2.6/subprocess.py" in _execute_child
1139. raise child_exception
最佳答案
您收到的错误意味着subprocess
模块找不到它想要运行的可执行文件。
如果脚本从命令行运行,则 gs
可执行文件显然存在,因此看起来 gs
可执行文件不在 PATH
您的 Django 应用程序正在运行。如果您指定 gs
的完整路径(例如 /usr/bin/gs
),会有帮助吗?
顺便说一句,如果我尝试让 subprocess
启动不存在的可执行文件,我会收到相同的错误消息:
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> subprocess.call("nonexistent")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
编辑:如果您的进程使用命令行参数,则必须将可执行文件名称和参数指定为单独的列表项,如第二次尝试运行 gs
:
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> subprocess.call("ls /usr")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
>>> subprocess.call(["ls", "/usr"])
bin games include lib lib32 lib64 local sbin share src X11R6
0
第一个示例不起作用,因为我系统上的任何位置都没有名为 ls/usr
的可执行文件。
您能否尝试修改第二次尝试以使用 gs
的完整路径,例如:
sp = subprocess.Popen(['/usr/bin/gs', '-dSAFER', '-dNOPAUSE', '-dQUIET', '-dBATCH', '-sDEVICE=jpeg', '-sOUTPUTFILE=' + path + "/static.jpg", path + "/source.pdf"])
关于python - Django:为什么当我在 django 中通过 popen 使用 Ghostscript 时,会出现 "file not found"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12025743/
我正在使用 Ghostscript 将多页 PDF 转换为单个 JPEG 文件,并且可以让它输出编号为 page_%03d.jpg 的文件。 但它总是从 page_001.jpg 开始,我需要它从 p
我在windows下的ghostscript中找不到清屏命令。请你帮助我好吗? 谢谢。 最佳答案 所以你想清除文本窗口?怎么样: 28 { ()= } repeat % output 28 bl
如何使用 ghostscript 创建空白页面?我想在将多个 PDF 合并在一起时执行此操作 - 类似于: `gs -dNOPAUSE -o /path/to/output input1.pdf i
我从 Ghostscript 调用中收到此错误消息: Error: /syntaxerror in -file- Operand stack: Execution stack: %interp_
我正在使用 Ghostscript 通过命令行参数打印 PDF。但它在打印机后台处理程序中将打印文档的名称显示为 Ghostscript 输出。我想将其更改为自定义名称(作为字母名称)。 最佳答案 请
我正在使用 Ghostscript 将可搜索的 PDF 转换为图像 PDF,以便使用成像工具包使用命令行查看它们: gswin32 -o c:\temp\output%d.png -r300 -dTe
我已经有大约 20 年没有手工编写 Postscript 代码了,所以我打开了 Bluebook 并将一些示例输入到名为 test.ps 的文件中。这是一个这样的例子: %!PS /doACircle
我知道他的问题到目前为止已经被问过很多次但是没有解决方案能够为能够使用所有者和用户密码保护 pdf 的 ghostscript 提供正确的语法和参数,也使用了加密,我已经使用以下命令但似乎没有人工作:
我知道他的问题到目前为止已经被问过很多次但是没有解决方案能够为能够使用所有者和用户密码保护 pdf 的 ghostscript 提供正确的语法和参数,也使用了加密,我已经使用以下命令但似乎没有人工作:
我应该传递哪些参数?我使用的 Ghostscript 版本是 8.71。 最佳答案 gs \ -dNOSAFER \ -sDEVICE=pdfwrite \ -o foo.pdf \ /us
我是 ghostscript 的新手,我无法理解语法。每当我尝试最简单的命令时,例如 -h 或 -?我收到一个错误,我尝试了各种组合。 GPL Ghostscript 9.05 (2012-0
我的桌面上有一个文件 abc.ps。我已经在我的机器上安装了 Ghostscript 9.05,我想使用命令行查看我的 abc.ps 文件。 GS>????? 我应该在这里写什么命令。我正在使用 Wi
将 CMYK eps 转换为 jpeg 时,Ghostscript 将颜色空间更改为 RGB。问题是在转换过程中保持颜色空间不变。提前谢谢。 最佳答案 假设您要将 EPS 中的任何 RGB 转换为 C
我正在 Linux 服务器中为我的应用程序运行 PostScript 到 PDF 转换服务。我安装了 Ghostscript 版本 8.70。我在 Windows 中使用 gsdll64.dll 、
是否可以使用ghostscript检查pdf是否受密码保护? 命令是什么? 我知道你可以使用 ghostscript 去除 pdf 密码, 但我想做的只是检查 PDF 是否受密码保护或启用安全性。 最
例子: 从 Excel 创建一张单页横向 PDF。使用 Adobe Reader 打开它,它以横向方式打开。使用 Ghostscript 打印它。使用 Adobe Reader 打开打印输出,
我正在尝试将彩色 pdf 转换为纯黑白 tiff,即如果颜色不是白色,我希望它是纯黑色。目前我的颜色线条变得有 Blob 和模糊,我认为这是由于半色调。有没有办法覆盖这个半色调?下面的例子。 电流输出
我有一个从 pdflatex 创建的文档,嵌入了 R pdf 图。我现在正试图将它发送给要求嵌入所有字体的打印机 (lulu)。我想,没问题, # gs -dNOPAUSE -dBATCH -dNOP
我使用这个 Ghostscript 命令将 PDF 转换为图像: gs \ -q -dQUIET -dPARANOIDSAFER -dBATCH -dNOPAUSE -dNOPROMPT \ -d
我有一个ghostscript命令,可将pdf转换为几个PNG图像(每页一个)。命令参数如下: -dNOPAUSE -q -r300 -sPAPERSIZE=a4 -dTextAlphaBits=4
我是一名优秀的程序员,十分优秀!