首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Asyncio create_subprocess_exec FileNotFoundError:[Errno 2]没有这样的文件或目录:

Asyncio create_subprocess_exec FileNotFoundError:[Errno 2]没有这样的文件或目录:
EN

Stack Overflow用户
提问于 2020-01-07 23:42:42
回答 1查看 715关注 0票数 0

我正在尝试创建一个异步管道,该管道可用于与我创建的子进程进行接口。我在尝试创建进程时遇到文件未找到错误的问题。正如您在下面的代码中看到的,我能够以同步的方式使用常规的Popen很好地创建子流程。有没有人能帮我克服这个错误?

代码:

代码语言:javascript
复制
# I've created the command and args string/dictionary above. They are all valid. 
# I can run the command from the command line and it works
import pprint
pp = pprint.PrettyPrinter().pprint
pp(popen_params)

print(" ".join(cmd))

sp.Popen(cmd, **popen_params)

print("Made it past initially creating the pipe")

self.async_proc = self.loop.run_until_complete(asyncio.create_subprocess_exec(" ".join(cmd), **popen_params))

输出:

代码语言:javascript
复制
{'bufsize': 0, 'stderr': -1, 'stdin': -3, 'stdout': -1}
/usr/local/bin/ffmpeg -i /Users/OWNER/Google Drive/yolo.mp4 -loglevel error -f image2pipe -vf scale=1280:720 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -
Made it past initially creating the pipe
Traceback (most recent call last):
  File "movie_trial.py", line 97, in <module>
    clip = VideoFileClip("/Users/OWNER/Google Drive/yolo.mp4")
  File "/Users/OWNER/Documents/Projects/moivepy_vendoring/moviepy/video/io/VideoFileClip.py", line 94, in __init__
    loop=self.loop)
  File "/Users/OWNER/Documents/Projects/moivepy_vendoring/moviepy/video/io/ffmpeg_reader.py", line 72, in __init__
    self.async_initialize()
  File "/Users/OWNER/Documents/Projects/moivepy_vendoring/moviepy/video/io/ffmpeg_reader.py", line 119, in async_initialize
    self.async_proc = self.loop.run_until_complete(asyncio.create_subprocess_exec(" ".join(cmd), **popen_params))
  File "/anaconda3/lib/python3.6/asyncio/base_events.py", line 484, in run_until_complete
    return future.result()
  File "/anaconda3/lib/python3.6/asyncio/subprocess.py", line 225, in create_subprocess_exec
    stderr=stderr, **kwds)
  File "/anaconda3/lib/python3.6/asyncio/base_events.py", line 1211, in subprocess_exec
    bufsize, **kwargs)
  File "/anaconda3/lib/python3.6/asyncio/unix_events.py", line 200, in _make_subprocess_transport
    **kwargs)
  File "/anaconda3/lib/python3.6/asyncio/base_subprocess.py", line 39, in __init__
    stderr=stderr, bufsize=bufsize, **kwargs)
  File "/anaconda3/lib/python3.6/asyncio/unix_events.py", line 706, in _start
    universal_newlines=False, bufsize=bufsize, **kwargs)
  File "/anaconda3/lib/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/anaconda3/lib/python3.6/subprocess.py", line 1364, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/bin/ffmpeg -i /Users/OWNER/Google Drive/yolo.mp4 -loglevel error -f image2pipe -vf scale=1280:720 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -': '/usr/local/bin/ffmpeg -i /Users/OWNER/Google Drive/yolo.mp4 -loglevel error -f image2pipe -vf scale=1280:720 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-07 23:48:37

您正在将以下内容作为单个命令调用

代码语言:javascript
复制
/usr/local/bin/ffmpeg -i /Users/OWNER/Google Drive/yolo.mp4 -loglevel error -f image2pipe -vf scale=1280:720 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo -': '/usr/local/bin/ffmpeg -i /Users/OWNER/Google Drive/yolo.mp4 -loglevel error -f image2pipe -vf scale=1280:720 -sws_flags bicubic -pix_fmt rgb24 -vcodec rawvideo - 

只将命令放在第一个参数中,然后将任何额外的参数作为列表传递到第二个参数中。请参阅此链接:https://docs.python.org/3/library/subprocess.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59631599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档