我正在try 运行一个程序,使用subprocess.call()在Python代码内部进行一些系统调用,这会抛出以下错误:

Traceback (most recent call last):
      File "<console>", 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

我实际的Python代码如下所示:

url = "/media/videos/3cf02324-43e5-4996-bbdf-6377df448ae4.mp4"
real_path = "/home/chanceapp/webapps/chanceapp/chanceapp"+url
fake_crop_path = "/home/chanceapp/webapps/chanceapp/chanceapp/fake1"+url
fake_rotate_path = "/home/chanceapp/webapps/chanceapp.chanceapp/fake2"+url
crop = "ffmpeg -i %s -vf "%(real_path)+"crop=400:400:0:0 "+ "-strict -2 %s"%(fake_crop_path)
rotate = "ffmpeg -i %s -vf "%(fake_crop_path)+"transpose=1 "+"%s"%(fake_rotate_path)
move_rotated = "mv"+" %s"%(fake_rotate_path)+" %s"%(real_path)
delete_cropped = "rm "+"%s"%(fake_crop_path)
#system calls:
subprocess.call(crop)

我能得到一些关于如何解决这个问题的相关建议吗?

推荐答案

如果要将字符串传递给subprocess.call,请使用shell=True.

docs:

如果传递单个字符串,则shell必须是True

subprocess.call(crop, shell=True)

或者:

import shlex
subprocess.call(shlex.split(crop))

Django相关问答推荐

Django-将html数据保存到quillfield中

在不指定查找的情况下调用 prefetch_lated() 有用吗?

在 Django 中重组多对多字段

为什么 Django 在错误的目录中寻找模板?

如何在 Fargate 容器中运行的 Django 中使用 AWS SES?

从一个组中获取所有用户 - Django

在 django 中使用自定义 url 转换器传递 url 参数

AttributeError:模块rest_framework.serializers在 Swagger 中的 Django 中没有属性NullBooleanField

Django 模型 Select - 只允许管理界面上的特定转换

防止 django 将_id附加到外键字段

Django模型中的密码字段

如何使用 jQuery 建立 Django 网站

在 django/python 上访问请求标头

从python中的URL获取查询字符串的最佳方法?

如何使用 select_for_update 在 Django 中获取查询?

如何从 Django 的 TabularInline 管理视图中省略对象名称?

找不到 msguniq.确保您安装了 GNU gettext 工具 0.15 或更新版本. (Django 1.8 和 OSX ElCapitan)

在 Django REST 框架序列化程序中动态排除或包含字段

您如何在本地针对 OpenID 进行开发

AWS Cognito 作为网站的 Django 身份验证后端