当前位置: 首页 > 面试题库 >

OSError:[Errno 2]在Django中使用python子进程时,没有此类文件或目录

常业
2023-03-14
问题内容

我正在尝试运行一个程序来使用Python代码在subprocess.call()其中进行一些系统调用,从而引发以下错误:

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)

我可以获取有关如何解决此问题的一些建议吗?


问题答案:

使用shell=True,如果你传递一个字符串subprocess.call

从文档:

如果传递单个字符串,则shell必须为True,否则该字符串必须简单地命名要执行的程序而无需指定任何参数。

subprocess.call(crop, shell=True)

要么:

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


 类似资料:
  • 问题内容: 我在Heroku上有一个Django应用。我在使用静态文件时遇到了一些问题(它们正在一个Heroku环境中加载,但没有在另一个环境中加载),因此我尝试了这里推荐的debug命令。 这是我的settings.py,与Heroku建议的一样: 无论我在Git存储库的根目录级别上是否实际上有一个目录“ static”(两种方式都对其进行了测试),都会收到错误消息。 有任何想法吗? 问题答案:

  • 问题内容: 我正在对GitHub上的此示例Angular2应用进行较小的修改,以使其使用Express.js而不是KOA。但是目前,当我尝试在FireFox中加载应用程序时,控制台中会显示以下错误: 当http请求触发路由器处理程序并返回时,Angular2应用程序开始加载,该处理程序返回,然后触发一系列嵌套依赖项的回调,其中一个引发错误并中途停止应用程序加载。 为了解决GitHub示例中的代码需

  • 第一个问题:我得到以下结果: 文件"D:\Anaconda\Lib\site-包\请求\api.py",第70行,在get返回请求('get', url, params=params,**kwargs) 文件"D:\Anaconda\Lib\site-包\请求\api.py",第56行,在请求返回session.request(method=method, url=url,**kwargs) 文件

  • 我试图在flifter中读取文件,但收到一个错误 csv文件已在pubspec的资产部分声明。yaml 并且文件的路径是正确的,下面是我同步读取文件的尝试: --课程开始时: -pubspec.yaml,资产科: --读取文件的方法 --调用上述方法---

  • 问题内容: 我正在尝试在IntelliJ上运行我的android应用程序。我从现有来源创建了一个项目,并且正确连接了SDK,一切正常,直到在那里,但是当我尝试运行时,它会记录以下消息: 这在我创建的所有类中都会发生。 对可能发生的事情有任何想法吗?也许我必须在IDE中进行一些设置。 谢谢。 问题答案: 解决了!在intelliJ中,转到 “设置” >“编译器”>“ Java编译器”,然后在“ 使用

  • 问题内容: 我已经花了将近两天的时间来讨论这个问题。 我是Docker和Docker Compose的新手,并尝试在运行Postgres和Go的EC2实例上运行我的映像。当我运行docker-compose up时,服务成功运行,但服务未成功运行。 当我尝试使用以下方法分别运行服务时: 一切都很好 然后运行: 我知道了 Dockerfile备用: docker-compose.yml 有趣的是,如