Awesome scientific environment written in Python, for Python!

Spyder Python for Mac

Spyder Python for Mac

  -  432.79 MB  -  Open Source
  • Latest Version

    Spyder Phyton 6.1.3 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

    649ff0e3a56a9be7ff5531a16cf8537a

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.3 Screenshots

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

    Spyder Phyton 6.1.3 Screenshot 1

What's new in this version:

New features:
- Allow to reconnect to remote kernels after the connection is lost
- Add ability to explore objects that depend on custom library code to the Variable Explorer

Important fixes:
- Fix memory leak on Linux when getting user's environment variables
- Fix several issues with the auto-update process of the standalone installers
- Fix segfault on closing with PyQt6
- Fix errors when creating new remote connections if credentials are wrong
- Finish fixing and improving docstrings for modules under spyder.api

API changes:
- Add sig_update_performed signal to Update manager plugin
- All public and most private APIs in spyder.api now have comprehensive docstrings and type hints with descriptions, parameters, returns and raises, and are thoroughly rewritten for correctness, clarity and proper formatting. They are also now fully built and richly rendered on the new Spyder developer docs site.

spyder.api.plugin_registration modules:
- The mixins module, containing the mixin used internally for handling the @on_plugin_available and @on_plugin_teardown decorators in the SpyderPluginV2 class, is now documented as pending deprecation as a public module, will become an alias of a private _mixins module and issue a DeprecationWarning in Spyder 6.2, and have the public alias be removed in Spyder 7.0. It is a private implementation detail that wasn't designed or intended to be used directly by external code; plugins access its functionality through the SpyderPluginV2 class instead.
- The registry module's vestigial SpyderPluginRegistry.old_plugins attribute, originally added in Spyder 5 to list legacy Spyder 4 plugins, has been removed. It was mistakenly left over when Spyder 6 fully dropped support for Spyder 4 plugins, which never actually functioned as intended and should be updated to support modern Spyder 5+ plugins instead.
- In the registry module's SpyderPluginRegistry class, setters for the all_internal_plugins (set_all_internal_plugins()), all_external_plugins (set_all_external_plugins()) and main (set_main()) instance attributes are now documented as pending deprecation, will raise a DeprecationWarning in Spyder 6.2, and will be removed in Spyder 7.0. Set the attributes directly instead.
- In the registry.SpyderPluginRegistry class' register_plugin() method, passing arbitrary *args and **kwargs is now documented as pending deprecation, will raise a DeprecationWarning in Spyder 6.2 and will be removed in Spyder 7.0. This was only needed for backward compatibility before the Editor plugin was migrated in Spyder 6 to the new plugin API introduced in Spyder 5.

spyder.api.plugins modules:
- Importing from the enum and new_api modules is now documented as pending deprecation. In Spyder 6.2, they will be renamed to the private _enum and _api modules, respectively, with the original names becoming aliases raising a DeprecationWarning on import, that will be removed in Spyder 7.0. They should be imported from their canonical location, the top-level spyder.api.plugins module, instead.
- The SpyderPluginV2's main instance attribute is now a property, to reduce duplication with the identically-valued _main attribute.
- SpyderPluginV2's _added_toolbars and _actions private attributes have been removed, as they are not used at least in Spyder 6 and above.
- Obsolete checks/warnings for SpyderPluginV2's removed register() and unregister() methods have been removed, as they have been unsupported since Spyder 5.1/5.2 and any code still using them is already broken. The respective on_initialize() and on_close() methods should be used instead.

spyder.api.widgets modules:
- In the mixins module's SpyderActionMixin.update_actions() method, remove the spurious leftover options parameter that does nothing, and is inconsistent and incompatible with all its actual current usage. As this is an abstract method and none of its implementations include it, any plugin code that does will already raise an error at runtime.
- In the menus and toolbars modules, the SpyderMenuProxyStyle and ToolbarStyle proxy style classes are now documented as pending deprecation. In Spyder 6.2, they will be renamed to the private _SpyderMenuProxyStyle and _ToolbarStyle classes, respectively, with the original names becoming aliases raising a DeprecationWarning on use, that will be removed in Spyder 7.0. They were never intended to be used directly by plugins.
- In the toolbars module, ToolbarStyle.pixelMetric() now correctly raises a SpyderAPIError (instead of silently not working as intended save for a spurious print() call) if the TYPE class attribute is not set to one of the two valid values, "Application" or "MainWindow". Additionally, using SpyderToolbar directly rather than its ApplicationToolbar and MainWidgetToolbar subclasses is now documented as formally discouraged so their respective styling will be applied.
- In the toolbars module, the ToolTipFilter class is now correctly underscored as private, as it is only for internal use handling Qt events by a private attribute of the SpyderToolbar class.

Fixed:
- NotImplementedError when trying to display Pandas DataFrame in Variable Explorer
- KeyError in lsp_mixin when using quick-lint-js Javascript LSP
- TypeError when closing project while it is loading
- Variable explorer raises error on a np.datetime64 object
- Scripts on remote server cannot be opened through Files pane
- Find in files displaying "string not found" while search is still running
- Update Spyder with pop up useless if one has a specific environment
- Numpad-Enter does not trigger search inside search box
- Error when updating Spyder in Anaconda as if it were standalone installer
- PermissionDenied error when remote connection credentials are wrong
- Updating Spyder obliterates conda environment
- Small refactor in Client.init to support custom ShellWidget
- Last run file becomes active when running last file rather than keeping active file current
- Spyder segfaults when closing with PyQt6
- TypeError in Update manager worker
- Annotation markers shown incorrectly and disabling option hides editor side pane
- Spyder consumes all RAM at startup on Linux, leading to whole system crash
- Two Spyder icons on Windows taskbar (regression?)
- Deselecting "Stop debugging on first line of files without breakpoints" ignores breakpoints in other files
- Opening a PyVista object can cause the error report dialog to be shown
- Retrieving the value of a variable in the Variable Explorer depends on how a module is imported