No such file or directory: 'screencapture'
Describe the bug
I get the error FileNotFoundError: [Errno 2] No such file or directory: 'screencapture' I can't find how to install this. any help?
File /usr/local/Cellar/[email protected]/3.10.13_1/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py:1863, in Popen._execute_child(self, args, executable, preexec_fn,
close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session)
1861 if errno_num != 0:
1862 err_msg = os.strerror(errno_num)
-> 1863 raise child_exception_type(errno_num, err_msg, err_filename)
1864 raise child_exception_type(err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'screencapture'
Reproduce
- Install interpreter
- Try some actions
Expected behavior
No errors
Screenshots
No response
Open Interpreter version
0.2.0
Python version
3.11.5
Operating System name and version
macOS sonoma
Additional context
No response
Hi @dep
Can you please provide some steps to reproduce? Searching the codebase, I don't see screencapture so I'm not sure what would have caused that error.
Was this error thrown in the code blocks that OI was trying to execute?
I'm not quite sure how to reproduce aside from install interpreter 0.2.0 and start with interpreter --os on an M1 MBPro running Sonoma. Here's the full output:
> Play some Lo-Fi.
To begin the task of playing some Lo-Fi music, I'll first switch to a browser where we can access a music streaming service or a website like YouTube that offers Lo-Fi tracks.
1 I will switch to a web browser (Safari, Chrome, etc.) using a hotkey or Spotlight search.
2 Once the browser is open, I will go to a website like YouTube using the omnibox or a bookmark.
3 After reaching YouTube, I will search for "Lo-Fi music" and start playing one of the playlists or live streams.
Let's start by switching to the browser using the spotlight search to play some music. I will execute the first step now.
# Starting with opening Spotlight to search for a web browser.
computer.keyboard.hotkey("space", "command")
I'll proceed to the next step which involves typing the name of the web browser into Spotlight to open it. Once the browser is open, we can navigate to a site to play Lo-Fi music. Let's do
that now.
# Writing the name of the browser (let's say Safari) into Spotlight to open it.
computer.keyboard.write("Safari")
computer.keyboard.press("enter")
Next, I will verify that the Safari browser is open and active, and then navigate to YouTube with the intention of searching for and playing a Lo-Fi music stream. Let's check the screen
first to ensure Safari is open.
# Adding a delay to make sure Safari opens and then capturing the screen
import time
time.sleep(2)
computer.display.view()
Output truncated. Showing the last 2800 characters.
for screenshot
--> 582 im = ImageGrab.grab()
583 return im
File /usr/local/lib/python3.10/site-packages/PIL/ImageGrab.py:37, in grab(bbox, include_layered_windows, all_screens, xdisplay)
35 left, top, right, bottom = bbox
36 args += ["-R", f"{left},{top},{right-left},{bottom-top}"]
---> 37 subprocess.call(args + ["-x", filepath])
38 im = Image.open(filepath)
39 im.load()
File /usr/local/Cellar/[email protected]/3.10.13_1/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py:345, in call(timeout, *popenargs, **kwargs)
337 def call(*popenargs, timeout=None, **kwargs):
338 """Run command with arguments. Wait for command to complete or
339 timeout, then return the returncode attribute.
340
(...)
343 retcode = call(["ls", "-l"])
344 """
--> 345 with Popen(*popenargs, **kwargs) as p:
346 try:
347 return p.wait(timeout=timeout)
File /usr/local/Cellar/[email protected]/3.10.13_1/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py:971, in Popen.__init__(self, args, bufsize, executable, stdin, stdout,
stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors,
text, umask, pipesize)
967 if self.text_mode:
968 self.stderr = io.TextIOWrapper(self.stderr,
969 encoding=encoding, errors=errors)
--> 971 self._execute_child(args, executable, preexec_fn, close_fds,
972 pass_fds, cwd, env,
973 startupinfo, creationflags, shell,
974 p2cread, p2cwrite,
975 c2pread, c2pwrite,
976 errread, errwrite,
977 restore_signals,
978 gid, gids, uid, umask,
979 start_new_session)
980 except:
981 # Cleanup if the child failed starting.
982 for f in filter(None, (self.stdin, self.stdout, self.stderr)):
File /usr/local/Cellar/[email protected]/3.10.13_1/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py:1863, in Popen._execute_child(self, args, executable, preexec_fn,
close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session)
1861 if errno_num != 0:
1862 err_msg = os.strerror(errno_num)
-> 1863 raise child_exception_type(errno_num, err_msg, err_filename)
1864 raise child_exception_type(err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'screencapture'
@dep Can you please check these two things:
- Is Xcode installed and updated?
- Have you given permission to whatever app you're using (Terminal, Warp, etc) to record the screen?
Thank you for the reply @Arrendy
- Yes installed and up-to-date
- I have, screenshot attached
What happens when you run screencapture in your terminal?
And then running screencapture test.png > if you have a file named test.png, replace with a new name to avoid overwriting the image