Awesome scientific environment written in Python, for Python!

Spyder Python for Mac

Spyder Python for Mac

  -  428.78 MB  -  Open Source
  • Latest Version

    Spyder Phyton 6.1.0 LATEST

  • Review by

    Daniel Leblanc

  • Operating System

    macOS 13.0 Ventura or later

  • User Rating

    Click to vote
  • Author / Product

    Pierre Raybaut / External Link

  • Filename

    Spyder-macOS-x86_64.pkg

  • MD5 Checksum

    5fcc23678e902d244b75f33bd1545cf4

Spyder for Mac is a powerful scientific environment written in Python, for Python, and designed by and for scientists, engineers, and data analysts.

It offers a unique combination of the advanced editing, analysis, debugging, and profiling functionality of a comprehensive development tool with the data exploration, interactive execution, deep inspection, and beautiful visualization capabilities of a scientific package.

Beyond its many built-in features, its abilities can be extended even further via its plugin system and API.

Furthermore, Spyder for macOS can also be used as a PyQt5 extension library, allowing developers to build upon its functionality and embed its components, such as the interactive console, in their own PyQt software. Core building blocks of a powerful IDE!

The easy way to get up and running with Spyder Python for Mac on any of the supported platforms is to download it as part of the Anaconda distribution and use the conda package and environment manager to keep it and your other packages installed and up to date.

Features and Highlights

Editor
Work efficiently in a multi-language editor with a function/class browser, code analysis tools, automatic code completion, horizontal/vertical splitting, and go-to-definition.

IPython Console
Harness the power of as many IPython consoles as you like within the flexibility of a full GUI interface; run your code by line, cell, or file; and render plots right inline.

Variable Explorer
Interact with and modify variables on the fly: plot a histogram or time-series, edit a dateframe or Numpy array, sort a collection, dig into nested objects, and more!

Profiler
Find and eliminate bottlenecks to unchain your code's performance.

Debugger
Trace each step of your code's execution interactively.

Help
Instantly view any object's docs, and render your own.

How to Use
  • Install Anaconda for easier environment management
  • Launch Spyder from the Applications folder or terminal
  • Create or open a Python script in the Editor pane
  • Use the IPython Console to run code interactively
  • View variables in the Variable Explorer pane
  • Customize layout and preferences via Tools > Preferences
  • Save your work and export plots or data if needed
  • Update packages via Anaconda Navigator or terminal
  • Use the Help pane for documentation and function tips
System Requirements
  • macOS 10.13 (High Sierra) or later
  • At least 4 GB of RAM (8 GB recommended)
  • 400 MB of free disk space
  • Python 3.7 or later (Anaconda recommended)
  • 64-bit Intel or Apple Silicon processor
PROS
  • User-friendly scientific Python IDE
  • Integrated IPython console
  • Variable explorer and data viewer
  • Syntax highlighting and code completion
  • Built-in debugger and profiler
CONS
  • Slower performance on large scripts
  • Heavier than lightweight editors
  • Occasional UI lags or freezes
  • Limited features compared to full IDEs
  • Requires Anaconda for best experience
Also Available: Download Spyder Python for Windows

Why is this app published on FileHorse? (More info)
  • Spyder Phyton 6.1.0 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    Spyder Phyton 6.1.0 Screenshot 1

What's new in this version:

New features:
- Add support to work with multiple cursors in the Editor. Options to configure them are available in Preferences > Editor > Advanced settings.
- Rearchitect Profiler to run through the IPython console and add %profilefile, %profilecell and %profile magics for that.
- Add a graphical interface to the update process of our standalone installers and base them in Python 3.12.
- Add support to use Ruff and Flake8 for linting in the Editor
- Plot histograms from the dataframe viewer
- Add support for Polars dataframes, frozen sets, Numpy string arrays and pathlib.Path objects to the Variable Explorer
- Show the remote file system in the Files pane when a remote console has focus
- Add support to connect to JupyterHub servers
- Add support to use Pixi environments in the IPython console
- Paths can be added to the front of sys.path in the Pythonpath manager
- Add option to show/hide the Editor's file name toolbar to Preferences > Editor > Interface
- Add option to disable zoom with Ctrl + mouse wheel to Preferences > Application > Advanced settings
- Add option to lint docstrings with the Google style to Preferences > Completion and linting > Linting

Important fixes:
- Much better support for PyQt6 and PySide6. PyQt 6.9.0+ and PySide >=6.8.0,<6.9.0 are required now.
- Remove blank lines around cells when copying their contents to the console.
- Automatically kill kernels when Spyder crashes.
- Disable magics and commands to call Python package managers in the IPython console because they don't work reliably there.
- Add support for IPython 9.
- Drop support for Python 3.8

UX/UI improvements:
- Reorganize most menus and Preferences pages to make them easier to navigate
- Allow to zoom in/out with Ctrl + mouse wheel in the IPython console
- Make shortcuts to move to different panes work when they are undocked
- Copy/cut the current line if nothing is selected in the Editor with Ctrl+C/Ctrl+X, respectively
- Add Shift+Alt+Right/Left shortcuts to move to the next/previous console
- Add shortcut Ctrl+W to close Variable Explorer viewers
- Add option to hide all messages displayed in panes that are empty to Preferences > Application > Interface
- Select full floating point numbers by double-clicking them on the Editor and the IPython console
- Fix plots looking blurred when scaling is enabled in high DPI screens

API changes:
Editor:
- Breaking - The NewFile, OpenFile, OpenLastClosed, MaxRecentFiles, ClearRecentFiles, SaveFile, SaveAll, SaveAs, SaveCopyAs, RevertFile, CloseFile, CloseAll, Undo, Redo, Cut, Copy, Paste, SelectAll, FindText, FindNext, FindPrevious and ReplaceText actions were moved to the ApplicationActions class in the Application plugin.
- Breaking - The shortcuts "new file", "open file", "open last closed", "save file", "save all", "save as", "close file 1", "close file 2" and "close all" were moved to the "main" section.
- Add "undo", "redo", "cut", "copy", "paste" and "select all" shortcuts to the "main" section.
- Add open_last_closed, current_file_is_temporary, save_all, save_as, save_copy_as, revert_file, undo, redo, cut, copy, paste, select_all, find, find_next, find_previous and replace methods.

IPython console:
- Breaking - The sig_current_directory_changed signal now emits two strings instead of a single one.
- Breaking - Remove set_working_directory method. You can use set_current_client_working_directory instead, which does the same.
- Breaking - The save_working_directory method was made private because it's only used internally.
- Add sender_plugin kwarg to the set_current_client_working_directory method.
- Add server_id kwarg to the set_current_client_working_directory method.
- Add Switch entry to IPythonConsoleWidgetMenus.
- Add NextConsole and PreviousConsole to IPythonConsoleWidgetActions.
- Add undo, redo, cut, copy, paste, select_all, find, find_next and find_previous methods.

Working Directory:
- Breaking - The sig_current_directory_changed signal now emits three strings instead of a single one.
- Breaking - The sender_plugin kwarg of the chdir method now expects a string instead of a SpyderPluginV2 object.
- Add server_id kwarg to the chdir method

Remote Client:
- Breaking - The create_ipyclient_for_server and get_kernels methods were removed
- Add sig_server_changed signal to report when a server was added or removed
- Add sig_create_env_requested and sig_import_env_requested to request creating or importing a remote environment (they work if the Spyder-env-manager plugin is installed)
- Add get_server_name method to get a server name given its id
- Add register_api and get_api methods in order to get and register new rest API modules for the remote client
- Add get_jupyter_api method to get the Jupyter API to interact with a remote Jupyter server
- Add get_file_api method to get the rest API module to manage remote file systems
- Add get_environ_api method to get the rest API module to work with environment variables in the remote machine.
- Add set_default_kernel_spec in order to set the kernel spec used to open default consoles

Pythonpath manager:
- Breaking - The sig_pythonpath_changed signal now emits a list of strings and a bool, instead of two dictionaries

Application plugin:
- Add create_new_file, open_file_using_dialog, open_file_in_plugin, open_last_closed_file, add_recent_file, save_file, save_file_as, save_copy_as, revert_file, close_file, close_all and enable_file_action methods to perform file operations in the appropriate plugin.
- Add undo, redo, cut, copy, paste, select_all and enable_edit_action methods to perform edit operations in the appropriate plugin
- Add find, find_next, find_previous, replace and enable_search_action methods to perform search operations in the appropriate plugin
- Add focused_plugin attribute

File Explorer:
- Breaking - ExplorerTreeWidgetActions renamed to ExplorerWidgetActions
- Breaking - The sig_dir_opened signal now emits two strings instead of a single one
- Add server_id kwarg to the chdir method

Profiler:
- Breaking - Remove sig_started and sig_finished signals, and run_profiler, stop_profiler and run_file methods
- Breaking - Remove ProfilerWidgetToolbars and ProfilerWidgetInformationToolbarSections enums
- Add ProfilerWidgetMenus, ProfilerContextMenuSections and ProfilerWidgetContextMenuActions enums.
- Add profile_file, profile_cell and profile_selection methods.

Main menu:
- Breaking - From SourceMenuSections, move the Formatting section to EditMenuSections and Cursor to SearchMenuSections, remove the CodeAnalysis section and add the Autofix section
- Breaking - Replace the Tools, External and Extras sections in ToolsMenuSections with Managers and Preferences
- Future Breaking - Rename the View menu to Window in ApplicationMenus and ViewMenuSections to WindowMenuSections; aliases are retained for backward compatibility but may be removed in Spyder 7+.
- Add Profile constant to RunMenuSections.

Toolbar:
- Add Profile constant to ApplicationToolbars

SpyderPluginV2:
- Add CAN_HANDLE_FILE_ACTIONS and FILE_EXTENSIONS attributes and create_new_file, open_file, get_current_filename, current_file_is_temporary, open_last_closed_file, save_file, save_all, save_file_as, save_copy_as, revert_file, close_file and close all methods to allow other plugins to hook into file actions.
- Add CAN_HANDLE_EDIT_ACTIONS attribute and undo, redo, cut, copy, paste and select_all methods to allow other plugins to hook into edit actions.
- Add CAN_HANDLE_SEARCH_ACTIONS attribute and find, find_next, find_previous and replace methods to allow other plugins to hook into search actions.
- Add sig_focused_plugin_changed signal to signal that the plugin with focus has changed.

PluginMainWidget:
- Add SHOW_MESSAGE_WHEN_EMPTY, MESSAGE_WHEN_EMPTY, IMAGE_WHEN_EMPTY, DESCRIPTION_WHEN_EMPTY and SET_LAYOUT_WHEN_EMPTY class attributes, and set_content_widget, show_content_widget and show_empty_message methods to display a message when it's empty (like the one shown in the Variable Explorer).

Shellconnect:
- Breaking - Rename is_current_widget_empty to is_current_widget_error_message in ShellConnectMainWidget
- Add switch_empty_message to ShellConnectMainWidget to switch between the empty message widget and the one with content
- Add ShellConnectWidgetForStackMixin class for widgets that will be added to the stacked widget part of ShellConnectMainWidget

AsyncDispatcher:
- Breaking - Remove dispatch method to use it directly as decorator
- Add class DispatcherFuture to spyder.api.asyncdispatcher and QtSlot method to AsyncDispatcher so that connected methods can be run inside the main Qt event loop
- Add early_return and return_awaitable kwargs its constructor

General API:
- Breaking - Remove old_conf_version method from SpyderConfigurationAccessor
- Add OptionalPlugins enum for plugins that Spyder can rely on to provide additional functionality

Fixed:
- Add support for Google style docstrings in Ruff-based linting options
- Ruff support not working on Windows installer (cmd gets shown and no analysis results are shown on the Editor)