Canopy Release Notes

This section lists major new features, fixes, and uncorrected issues known at release time. Where possible, we suggest workarounds.

Summary of release notes



Post-release notes

For post-release information, including updates on known issues, please see the “Canopy Version 2” section of the Enthought Support Knowledge Base.



Package updates

In general, updating the Canopy application does not cause an update to your working Canopy Python environments, although you may also update these if you choose to, either during the Canopy update, or later, or update individual packages as needed.

However, Canopy 1.x Python environments cannot be used in or migrated to Canopy 2 Python environments, so when you update from Canopy 1 to Canopy 2, you always start with a new, clean, consistent environment.

For more information, see “Updating the Python packages in the Canopy 2 application” in the Enthought Support Knowledge Base.



Release notes for Canopy 2.1.3 (16 June 2017)

Fixed: Canopy’s first startup is more robust and clear, avoiding corruption of Python environment (#3887, #3962)

During first startup, Canopy’s User Python environment is created, which can take a long time. If the user unknowingly attempted to start Canopy before this was finished, the environment could be corrupted. This has been fixed: Canopy will refuse to be started until the environment has been fully created, and the environment creation progress window now is shown in the task bar, so that the user can see more easily that it is still running.

Known Issue: Opening multiple Packman windows may cause Canopy to crash (#3958)

If you have done “Restore Session” from the Welcome Screen or Windows menu, or have just opened Canopy with “Restore Session” as your startup mode, then please wait until any restored Package Manager window is fully open before telling Canopy to open Package Manager. Otherwise, multiple Package Manager windows could open, which could cause Canopy to crash. This bug will be fixed in or before Canopy 2.2.0 (#3958).



Release notes for Canopy 2.1.2 (12 June 2017)

Improved: Better recovery from errors while creating User Python environment (#3915)

Canopy now handles errors that occur while installing the User Python environment when Canopy is first started, or when the environment is reset. Therefore Canopy’s initial startup (after installation) is now much more robust. A common cause of these errors was anti-virus applications scanning files as they were being installed by Canopy.

Fixed: Canopy is now able to start when the PATH environment variable contains non-ASCII items (EDM #1483)

Canopy would fail to set up its default User Python environment if any item in the PATH environment variable contained non-ASCII characters.

Fixed: Unhandled WindowsError when checking for the Data Import addon (#3884, #3925)

Code that was checking if the Data Import addon has been set up is now more robust against file system errors.

Fixed: Crash when opening files after the editor has been closed (#2927, #2453)

A rare crash has been fixed that occurred when opening a file in Canopy after the file editor had been closed.

Fixed: Windows: included IPython package now works in Managed Common Install (#3880)

The included packages in the user environment have been updated, fixing an issue that occurred running IPython in Canopy Managed Common Install mode.

Fixed: Linux full installers can now be fully installed (#3889)

Due to the inclusion of some extra packages that are only used in building Python, there were conflicts in the full installer Python environment on Linux that caused installation to fail. These unnecessary packages have been removed.

Fixed: The file browser dialog for creating a new Python environment always defaults to the correct location (#3882)

When creating a new Python environment from an EDM bundle, the file dialog to select the bundle file will always open in the correct location.



Release notes for Canopy 2.1.1 (24 May 2017)

Canopy 2.1.1 focuses on improving environment installation and error reporting.

We recommend and request that all Canopy 2 users update to version 2.1.1. Even if, like most users, you have not experienced any difficulties, it will make troubleshooting easier if you do experience difficulties in the future, and will help us continue to improve Canopy.

New: Full installer for Python 3.5 (#3812)

For disconnected users and multi-user sys admins, we now provide a full installer for Python 3.5, as we always have for Python 2.7. This is available on the Canopy download page to logged-in paid and academic subscribers. We do not recommend that internet-connected individual users install the full installer, because you will only use a fraction of the approximately 500 included packages, it consumes about 4 GB of disk space (not including the installer), and will increase the frequency, duration, and bandwidth of “Update all packages” operations.

Fixed: “Unable to lock package database” & “Unable to release lock (#3274, #3410, #3828)

If the Package Manager or Canopy EDM session was ended abnormally (for example in a Canopy crash, forced quit, or system shutdown), the package database could remain locked, and the Package Manager be unable to start. Also, after some package installation errors, the Package Manager did not release its lock on that database. These lock-related errors have been fixed. Now, after Canopy is restarted, the Package Manager should be able to start normally.

Note: Force-quitting the Package Manager while it is updating an environment could still cause the environment to be corrupted. For more information and how to fix this, see this Knowledge Base article.

Improved: Better logging, especially during Python environment and package installation (#3811, #3820, #3841, #3845)

On a very small proportion of systems (not yet well characterized) installation of Python environments and packages may fail. To help us assist you when this happens, and to help us identify and fix any underlying issues in the next Canopy release, we’ve improved logging after such failures. When you submit a feedback/bug report to us through Canopy’s help menu, we’ll see these logs.

Fixed: canopy_cli failed with Python 3 environment (#3816)

The canopy_cli utility is mostly used by system admins, including in a Managed Common Install. It now works correctly with a Python 3.5 environment.

Fixed: Unusable environment names could be created (#3768)

New environments created in the Preferences dialog’s Python tab could be given arbitrary names, making these environments unusable. These environment names are now limited to containing only alphanumeric characters, underscores and hyphens.

Known Issue: In Managed Common Install, limitations for non-admin users (#3350, #3813)

In a Managed Common Install, non-admin users cannot use the Package Manager and cannot switch between Python environments. This will be fixed in a forthcoming Canopy release. Please see “Limitations of a Managed Common Install”.

Known Issues: Other

Except for the fixes described above, the Known Issues in Canopy 2.1.1 (below) are still present in Canopy 2.1.1.

Please see the Canopy support Knowledge Base article “Canopy 2.1 Known Issues (supplemental)”.



Release notes for Canopy 2.1.0 (12 May 2017)

Upgrading from Canopy 1 to Canopy 2

Because Canopy 2 uses a simpler architecture than Canopy 1, it’s not possible to upgrade from Canopy 1 to Canopy 2 within the Canopy application. Instead, it’s necessary to do a complete uninstall and removal of Canopy 1 before installing Canopy 2. Please see “Updating from Canopy v1 to Canopy v2” in the Enthought Support Knowledge Base.

Likewise, Canopy 1 Python environments cannot be used in or migrated to Canopy 2 Python environments, so when you update from Canopy 1 to Canopy 2, you always start with a new, clean, consistent environment.

New: Switch between multiple Python environments within Canopy (#3600)

In Canopy 2.0, a single user environment, named “User”, was supported. Therefore you could conveniently use either Python 2.7 or Python 3.5, but not both.

In Canopy 2.1, a default “User” environment (either Python 2.7 or Python 3.5) is still created on installation, but you can also create, manage, and switch between multiple Python 2.7 and Python 3.5 environments, with different environments able to include different Python versions and different packages. These environments are managed on the Python tab in the Canopy Preferences dialog.

You need to restart Canopy for a change in your active (in use) Python environment to take effect.

In Canopy 2.2, you will be able to use different Python environments simultaneously in different Canopy windows, without restarting Canopy.

For details, see “Managing and switching between Python 2.7 and 3.5 environments” in the Enthought Support Knowledge Base.

New: Canopy will detect an existing User Python environment from prior Canopy 2 (#3316)

When Canopy 2.x is updated from a previous Canopy 2.x installation, it will offer to re-create the standard User Python environment with the latest Python and package set. See “Package updates”, above.

Removed: Canopy no longer sets any Python environment as “default” (#3685)

The option to set/unset a user Python environment as “default” has been removed. This feature conflicts with Canopy supporting multiple environments, and could result in unexpected behaviour or crashes. The easiest way to use Canopy Python at a command line is to open a Canopy Command Prompt / Terminal from the Canopy Tools menu. Otherwise, for suggestions on changing the default Python in standard Command Prompt / Terminal sessions, please see “Make Canopy 2 User Python be your default Python” in the Enthought Support Knowledge Base.

Removed: Canopy application update notifications have been removed (#3721)

Canopy 2.0 and 2.1 no longer provide a built-in update mechanism, so the “Check for updates” and “No Update available” have been removed. Please monitor the Enthought website, support site, mailing list or twitter feed to learn about available updates on the Canopy download page <https://store.enthought.com/downloads/>`__. Future Canopy versions will provide notice of available Canopy updates.

Note that on Windows, it is now possible to install a new Canopy 2 version without first uninstalling a previous Canopy 2 version; the installer will uninstall it for you. (Your Python environments will be preserved; see “Package updates”, above.)

New: Canopy can reset the “User” Python Environment (#3456)

Please do not simply delete any Canopy Python environment directory from disk, which would interfere with Canopy 2’s use of the Enthought Deployment Manager (EDM) for managing Python environments. Canopy now includes a command to reset the standard “User” Python environment. This can be found in Canopy’s Tools -> Troubleshoot menu. Other environments can be deleted in the Canopy Preferences Python tab.

New: Canopy for Linux is targeted to RHEL 6 with a UCS4 Python build (#3518)

The Canopy 2.1 application and user Python environments for Linux are now built on and targeted to RHEL 6. (Canopy 1.x targeted RHEL5.) For Python 2.7, this is also a transition from the default UCS2 Python for Linux builds to the much more widely used UCS4. The USC2:USC4 distinction does not apply to Python 3.3 and above.

Updated: Canopy and its Python 2 user environments use Python 2.7.13 (#2936)

The user Python environment shipped with Canopy’s Python 2.7 installers has been updated from version 2.7.12 to 2.7.13. For more information, see the `Python 2.7.13 release notes<https://hg.python.org/cpython/file/v2.7.13/Misc/NEWS>`__.

The Canopy application itself now runs in its own private Python 2.7.13, providing stability and security fixes over previous Python and Canopy versions.

Fixed: Canopy registers Python environments under its own namespace in the Windows Registry (#3440)

Canopy now registers newly created User Python Environments in the Windows Registry following the guidelines in PEP 514<https://www.python.org/dev/peps/pep-0514/>__ for third-party tools to locate and identify Python environments.

New: Canopy code editor error-checks Python 3 code (#3345)

Canopy 2.1 has full support for editing Python 3 code, including static analysis to highlight code errors and warnings, in addition to the code completion and navigation for Python 3 that was already supported in Canopy 2.0. Canopy 2.1 continues to provide full support for Python 2.7.

See the next item to learn how the code analyzer selects what Python version to use.

Known Issue: Python version specified in code editor’s status bar is ignored (#3366, #3740)

The code editor has a status bar containing a file-type / language-selection widget. All .py files in Canopy 2.1.0 are shown as being “Python 2” by default, but it makes no difference whether you change this to “Python 3”. Rather, the Python version (2 or 3) that is used for static analysis, code completion, running code, etc, is only determined from the currently active Canopy Python environment.

Known Issue: In Canopy running Python 3, GUI backend must be explicitly set (#3567)

If you ask matplotlib to display a plot, or otherwise run Python code that creates a GUI window, by default you will get an error traceback ending with: ImportError: No module named 'PyQt4'

The solutions are to install PyQt (which is GPL-licensed) in the Canopy Package Manager, or to use the Canopy Preference menu’s Python tab to specify the TK PyLab backend for creating GUIs. For details, see “Python 3 in Canopy 2 - ‘No module named PyQt4’ error”.

Known Issue: Do not include spaces or punctuation in your environment names (#3768)

Canopy Python environment names (created in the Preferences dialog’s Python tab) should only contain alphanumeric characters, underscores, and hyphens. In Canopy 2.1.0, this restriction is not enforced, which could cause some environments to be unusable, either immediately, or in future Canopy versions.

Known Issue: Do not close package management window during package installation / removal (#3410)

Please do not close the Package Manager window, or the Canopy Command Prompt / Canopy Terminal window, or the Preferences => Python => environment maintenance window, while package installation or removal is taking place in that window.

If you do so, all Canopy / embedded EDM environments may be left in a locked, unusable state. For more information, see `this article<https://support.enthought.com/hc/en-us/articles/115002378323>`__ in the Enthought Support Knowledge Base.

Fixed: Canopy code editor static analysis will be stopped if it takes too long or is not responsive (#3346)

For very large files, in rare cases, evaluating code completion and performing static analysis may take too long and appear unresponsive. In these cases, the analysis is now stopped after a short interval. If you wish, you may try the operation again.

Fixed: The Canopy file browser no longer allows invoking the Data Import Tool on a directory (#3004)

The Canopy Data Import Tool cannot operate on whole directories, so the option to load data when right-clicking on a directory in the Canopy file browser has been removed.

Fixed: The Canopy IPython terminal no longer hangs when a remote kernel exits (#3459)

The Canopy IPython terminal now detects when a remote kernel (not managed by Canopy) has crashed or exited, fixing an issue where the IPython terminal would no longer allow input.

Fixed: Opening an HTML file in Canopy no longer causes Canopy to fail to open other files (#3517)

Canopy would fail to open a new file in the Canopy editor using drag and drop when an HTML file is already open. This bug has been fixed.

Fixed: Jupyter notebooks can now be created from within Canopy with a custom name (#3577)

Attempts to create a new Jupter notebook, using the Canopy Editor menu option New.., would fail if a name other than Untitled was given. This issue has been fixed.

Known Issue: Canopy Data Import Tool is not yet supported in Python 3 environments

A Python 3 version of the Data Import Tool is forthcoming.

Fixed: Canopy Data Import Tool is no longer presented in Python 3 Environments (#3585)

As just noted, the Canopy Data Import Tool is not yet compatible with Python 3. To avoid confusion, the Tool’s icon is not shown in the Canopy 2.1 welcome window, when Canopy’s active environment is Python 3.

Known Issue: Canopy Data Import Tool is shown in the File menu even with Python 3 (#3776)

As just noted, the Canopy Data Import Tool is not yet compatible with Python 3. However the Canopy File menu still includes a Import Data submenu, although its commands cannot actually be executed.

Fixed: A case where error output from user scripts was hidden has been fixed (#3605)

Recent versions of jupyter’s ipykernel library changed hpw errors are reported back to the connected consoles. As a result, Canopy’s IPython console would not show tracebacks produced by code executed in an ipython session using the %run command. This has been fixed.

Fixed: On first start, Canopy 2.1 will remove any Windows Start Menu shortcuts left by Canopy 1.x (3632)

On initial run after an installation, Canopy 2.1 will identify and remove shortcuts from older Canopy 1.x installations in the Windows Start Menu, to the extent that the user’s permissions allow this.

Known Issues: Other

Please see the Canopy support Knowledge Base article “Canopy 2.1 Known Issues (supplemental)”.



Release notes for Canopy 2.0.1 (28 March 2017)

Updated: Newly created User Python environments will default to IPython 5 (#3532)

Canopy now defaults to installing IPython 5 when creating new User Python environments.

Fixed: IPython 5 in the User Python environment will now correctly show tracebacks (#3486)

Canopy has been updated to improve compatibility with IPython 5. Users will now see tracebacks, as expected, from code run in Canopy’s IPython console.

Improved: Better support for “Upgrade All Packages” in Package Manager (#3520)

An update to the EDM library used by Canopy’s Package Manager provides a better user experience when updating all installed packages.

New: Older versions of Canopy documentation are available online (#3434)

The documentation for both Canopy 1.7 and Canopy 2.0 is now available at http://docs.enthought.com/canopy/

Known Issue: SSL error on Mac OS with Python 3.5

If your code accesses the internet, you may see an error SSL: CERTIFICATE_VERIFY_FAILED. The fix is to update your User Python runtime, a quick and simple operation in Canopy 2. See “Canopy 2 - Updating the Python runtime”.

Known Issue: edm history command may fail in Command Prompt / Canopy Terminal (#3441)

After an “Upgrade all” command in Canopy’s Package Manager, the edm history command will fail in the Canopy Command Prompt / Terminal. The workaround is to click the “Copy history to clipboard” icon next to the word “History” on the left side of the Package Manager.

Known Issue: The Package Manager window may become unusable after dragging the mouse (#3543)

The Package Manager window may become unusable after dragging the mouse. The workaround is to close the Package Manager window, then reopen it.

Known Issue: Package Manager unclear message “Error occurred” when environment is in use

If you start the Package Manager when you already have a Canopy Command Prompt or Canopy Terminal open, the Available and Updates panels may show the message “An Error occurred” with a “Try again” button. To properly display these panels and use the Package Manager, please close the Canopy Command Prompt / Terminal window, then click the “Refresh” link at the top of the Package Manager Window.

Known Issue: Package Manager “Upgrade all” with Full Installer package set

With the package set included in the Canopy 2.0.1 Full Installer, the Package Manager’s “Upgrade All” command will fail. The information for the relevant step in the History panel will say “UnresolvableRequirements: Unable to satisfy requirements”. The workaround is to update packages individually.

Known Issue: In Canopy running Python 3, GUI backend must be explicitly set (#3567)

If you ask matplotlib to display a plot, or otherwise run Python code that creates a GUI window, you will get an error traceback ending with: ImportError: No module named 'PyQt4'

The solutions are to install PyQt (which is GPL-licensed) in the Canopy Package Manager, or to configure Canopy to use the built-in tk GUI backend. For details, see “Python 3.5 in Canopy 2.0 - ‘No module named PyQt4’ error”.

Known Issues: Other

Please see the Canopy support Knowledge Base article “Canopy 2.0.1 Known Issues (supplemental)”.



Release notes for Canopy 2.0.0 (01 March 2017)

New: Support for Python 3 (#2880)

Canopy 2 supports running a Python 3 User Python environment, starting with Python 3.5 in Canopy 2.0. This initial support includes:

  • Running Python 3 code in Canopy’s IPython shell.
  • Connecting to external Python 3 Jupyter kernels.
  • Debugging Python 3 code.
  • Code completion and docstring expansion of Python 3 code.

In Canopy 2.0, you must choose to install either Python 2.7 or Python 3.5, by downloading the installer for your chosen Python version. There is no support for easily switching between Python versions; this will be supported in a future release.

Canopy’s Data Import Tool does not yet run in a Python 3 environment.

Changed: Newly created User Python environments are flat, not layered (#2621)

This change will be invisible to most Canopy users (other than having a much simpler sys.path, where Python finds modules to import). However for admins installing for multiple users, and for some advanced users, the change will require modifying procedures / scripts, and will provide a significant improvement in capability and robustness.

Canopy before version 2.0 used layered virtual environments for its User Python environments. These environments are no longer supported.

For more information about managing the packages in Canopy’s User Python environment, see “Package Manager”.

Updated: User environment Python to version 2.7.12 (#3370)

The Python version shipped with Canopy has been updated from version 2.7.11 to version 2.7.12. For more information, see the `Python 2.7.12 release notes<https://hg.python.org/cpython/file/v2.7.12/Misc/NEWS>`__.

Updated: Canopy supports connecting to IPython 5.1 kernels (#2784 #3299)

While Canopy still ships with IPython 4 in the User Python environment, connections to IPython 5 kernels are supported. Canopy also supports launching notebooks connecting to IPython 5 kernels.

Changed: Use of Jedi for code completion and navigation (#3036)

Canopy 2.0 now uses Jedi for code completion and navigation, replacing use of Supplement in prior versions. Besides enabling Python 3 support, this also improves performance.

Changed: Canopy startup time has been reduced

As part of an ongoing architectural simplification of Canopy, Canopy 2.0 brings a faster startup time.

Note

On first startup, when Canopy creates the User Python environment, Canopy 2.0 startup is no faster than before due to the need to install over 100 packages in the environment.

Changed: Packman v2 now fully resolves package dependencies for the whole environment

Packman, through the use of EDM, now ensures that the set of packages is consistent and fully compatible when packages are installed, removed or updated.

Removed: Package Manager v1 (#2615)

Package Manager v1, which was deprecated in Canopy 1.7, has been removed.

Fixed: Commenting is now PEP8 compliant (#2737)

Commenting code in Canopy’s Editor will now insert a space after the comment character.

Improved: Better Python error checking in Code Editor (#2515)

Canopy’s code editor uses the Pyflakes package for checking code for errors and warnings. The version of Pyflakes used has been updated from 0.4.0 to 1.1.0, so it finds errors more accurately and provides better error messages. See the Pyflakes change log for details.

Fixed: Canopy no longer hangs on large traceback frames (#2986)

Canopy now correctly processes large tracebacks when linking the traceback frames to the source files.

Changed: Canopy no longer associates to non-Python file-types on macOS and OSX (#2641)

Canopy now only associates itself with the following file types:

  • Python: *.py, *.pyw, *.pyt
  • enaml *.enaml
  • IPython notebooks: *.ipynb
  • Python Tracebacks: *.pytb
  • Cython: *.pyx, *.pxd
  • Plain text: *.txt

Changed: From Canopy 2.0 onward, Canopy upgrades on Windows use the MSI installer (#3414)

The Canopy MSI now supports upgrading an existing installation of Canopy 2.0 or newer. Canopy 1.7 or earlier can not be upgraded to Canopy 2.0 using the MSI and must be removed and re-installed as per this Enthought Knowledgebase article



Release notes for Canopy 1.7.4 (21 July 2016)

Improved: Integration with third party applications (#2751)

Canopy now provides additional features allowing integration with third-party applications.

New: Trial and demo information shown on Welcome Screen (#2724)

When Canopy is deployed with a trial or demo license, Canopy’s Welcome Screen will now display information about the license and its expiration date.

Improved: User feedback and bug reporting (#2753, #2740)

The Canopy feedback and bug reporter now encourages the user to enter a valid email address, so that Technical Support can respond or ask for more information. Also, the report now includes user license information, to help troubleshoot user access problems.

Improved: Add support for Canopy Terminal in Lubuntu (#2757)

Canopy Terminal can now be used in Lubuntu and other Linux platforms using LXTerminal.

Improved: Login diagnostics in network access tests (#2634, #2791, #2792)

In rare cases, users operating behind a proxy firewall are unable to log in on Canopy’s Welcome Screen despite Canopy’s Detailed Network Access Tests (in the preferences dialog) all passing. This can occur when your proxy server is configured to strip authentication information from the HTTP request. An additional test has been added to Canopy’s Detailed Network Access Tests to help diagnose this situation.

Fixed: Error opening file from Welcome Screen’s Recent Files (#2710, #2676)

When a file was opened from the Canopy Welcome Screen’s Recent Files list, before any full Canopy Editor window exists yet, that file was opened in a plain text editor, with no file browser, Python pane, or debugger, and no way to Run the file. An exception was sometimes raised. This has been fixed.

Fixed: Exception in the code editor (#2716, #2738)

An exception related to code_warnings or tooltips was occasionally triggered when editing code. This has been fixed.

Fixed: Package manager (#2735, #2754, #2701)

The Package Manager v2 has been updated to fix some rare network issues, and to correct its inability to handle some unusual package version strings.



Release notes for Canopy 1.7.3 (15 June 2016)

Fixed: Registry and sys.path issue on Windows (#2447)

It was possible for another Python install to interfere with the default sys.path seen in Canopy’s Python, due to adding some paths from registry values. This might allow the wrong versions of some packages to be imported. Canopy has been changed to not use those registry values when constructing sys.path.

Fixed: Recent Files list in the Editor window (#2482)

Previously the list of Recent Files in the Editor’s file browser was not populated when opening subsequent instances of Canopy’s Editor window. This has been fixed.

Fixed: Non-admin use of Package Manager in read-only environment (#2484)

A non-admin user with a common install of Canopy can now run Package Manager and browse the installed and available packages. Previously it would cause an exception to be raised.

Fixed: Error when adding Debugger breakpoint from context menu (#2559)

A bug which prevented setting breakpoints from the context menu has been fixed.

Fixed: Disconnected licensed user can’t access Data Import Tool examples (#2562)

The Data Import Tool has been updated to check for license state before checking whether the user is logged in.

Fixed: Debugger breakpoints on non-code lines (#2563)

The Canopy Debugger has been updated to prevent setting apparent breakpoints on blank or commented lines, because such apparent breakpoints do not actually work.

Fixed: PYTHONPATH registry value when Canopy set as default Python (#2568)

When Canopy is set to be the default Python on Windows it sets a corresponding registry key used by stock Python as a fallback sys.path value. Canopy was setting an incorrect value there. This would not have affected many users. It has been fixed.

Fixed: Wrong file permissions on eggs in LOCAL-REPO and EXTRA-REPO on OSX (#2602)

When Canopy was deployed on OSX on a multi-user system, where the users do not have admin access rights, non-admin users were unable to read the eggs in Canopy’s LOCAL-REPO and EXTRA-REPO folders due to incorrect file access permissions. This has been fixed.

Fixed: Command line –help option redirected (#2627)

When using the --help option with canopy_cli it was possible for the help text to be redirected to the log files instead of being shown to the user. This has been fixed.

Known Issue: wxPython/glib conflict on some Linux distributions

On some distributions of Linux the system version of the glib library may be newer enough than the version provided with Canopy that there can be some version mismatches with some related libraries. In a Canopy environment this typically manifests as a shared library error when importing wxPython. This is planned to be solved properly in a future release, in the meantime a workaround is in this knowledge base article.



Release notes for Canopy 1.7.2 (6 May 2016)

Fixed: Disconnected user License Management (#2455)

In Canopy 1.7.0 and 1.7.1, users who never have an internet connection to Canopy, and are not running under a Canopy Common Install, are unable to use the Debugger and Data Import Tool even after manually installing a Canopy license. This has been fixed.



Release notes for Canopy 1.7.1 (28 April 2016)

(A new issue numbering system is now in use starting with this release.)

Fix: Missing libraries on Linux (#2443)

Canopy 1.7.0 does not start on some Linux distributions due to missing libraries in the Canopy Core Python environment. This has been fixed.

Improved: Mention -d flag at startup (#2446)

Canopy now prints a message when started from the command line, informing the user that the -d (--debug) option can be specified to see console output. This helps to easily see error messages if Canopy does not start as expected.



Release notes for Canopy 1.7.0 (18 April 2016)

New: Connect Canopy’s Python Pane to external IPython kernels (#3997)

The Canopy Editor’s Python Pane can now be connected to IPython 4 (Jupyter) kernels running on any Python 2.7. For details, see “Connect the Python pane to external IPython kernels”.

New: Package Manager v2

The Canopy Package Manager version 2 has been officially released after several months of availability in beta. It provides:

  • User selection of standard repositories (free, commercial, pypi and GPL)
  • Support for private repositories (with Enthought Deployment Server)
  • New GPL repository isolating GPL-like licenses
  • The deprecated and unmaintained “PyPI mirror” repository is not activated by default, avoiding considerable user confusion
  • Performance and stability improvements

For more information, see “Package Manager”.

Package Manager v1 has been deprecated, but is still available, temporarily, in the Canopy Tools menu.

New: Data Import Tool (subscriber benefit)

Canopy’s new graphical Data Import Tool allows you to import text data files into Pandas DataFrames and manipulate them in an easy, reproducible way. It provides an exploratory graphical interface to data manipulation while using a familiar Python representation of your data.

For more information, see “Data Import Tool”.

Updated: Python to version 2.7.11 (#3946)

Canopy’s Python has been updated from version 2.7.10 to version 2.7.11. For more information, see https://hg.python.org/cpython/raw-file/53d30ab403f1/Misc/NEWS.

Updated: IPython in Canopy’s Editor to 4.1.2

Canopy’s Editor Python Pane has been updated from IPython 2.4.1 to 4.1.2 (Jupyter’s IPython). For more information, see https://ipython.readthedocs.org/en/stable/whatsnew/version4.html

Improved: Application updates now downloaded only when requested (#3961)

After you have installed Canopy 1.7.0, Canopy will notify you when a future Canopy application update becomes available. It will provide a link which you can use to download and install the update. This fixes a longstanding issue with automatic downloads of updates, resulting in bandwidth overuse in some cases.

Note: Updating to Canopy 1.7.0 from earlier versions must still use the previous method. Therefore in-application updates to Canopy 1.7.0 will only be available for a limited period. For more information, see this knowledge base article.

Improved: User account creation (#3157)

Canopy will now send you to the Enthought web site to create (register) a new user account. This streamlines the account creation workflow and makes it easier for you to verify that your login is working, before using it in Canopy.

Fixed: Welcome Screen layout (#3998, #4017)

Some visual issues with the layout and organization of the Welcome screen have been fixed.

New: Auto-debugging (#4062)

A new Auto-debug button on the Canopy Editor’s Toolbar makes it easier to debug individual functions, among other uses. For more information, see “Debugger Toolbar”.

New: File Browser rename/move commands (#4052)

You can now right-click on a file in Canopy’s File Browser, then rename or move it. This change is automatically synced if the file is currently open in the Editor.

Improved: File Browser’s filter now defaults to All Files (*.*) (#3989)

When Canopy’s Editor opens, all files are now displayed in the File Browser, regardless of file type or Canopy’s ability to open the files. This provides a clearer view of the complete contents of folders. You can temporarily change the filter (at the top of the File Browser) to display only specific file types.

New: Option to disable Python Pane calltips (#920)

By default, docstring calltips (tooltips) automatically appear when you are editing code in the Canopy Editor’s Python Pane. You can disable these in the Python tab of Canopy’s Preferences dialog.

New: Option to suppress check for Jupyter on startup (#4029)

By default, when Canopy starts it checks that Jupyter is installed in your User Python environment (necessary for Canopy to be able to open or create a Jupyter notebook), and prompts you if Jupyter is not found. You can immediately prevent this prompt from re-appearing by checking “Don’t show this dialog again” or disable/re-enable it in the Notebook tab of Canopy’s Preferences dialog.

Improved: Added notification that User venv is not updated with GUI update (#1328)

After the Canopy GUI application has been updated, you will now be notified that your Canopy User Python environment has not been modified. For more information, see “Updating the Canopy Application and its Python Packages”.

Fixed: Disable USER_SITE on startup (#4027)

Python’s ENABLE_USER_SITE is now disabled by default. Previously, this was enabled, following python.org norms, but in our experience was almost never used intentionally. Instead, it caused unintentional corruption by other Python installations. In particular, unrelated and incompatible packages in %APPDATA%\Python\Python27\ (Windows) and ~/Library/Python/2.7 (Mac) could interfere with Canopy’s execution. If you have a special requirement to enable this setting, you can edit your site.py file manually.

Improved: Console output now redirected to stdout.log or stderr.log

If Canopy is started from the command line, output to the console is now logged into stdout.log or stderr.log, removing console noise.

Improved: Command prompt windows no longer flash open when starting Canopy (#4080)

On Windows, Command prompt windows would rapidly open and close when checking if Jupyter was installed. This has been fixed.

Fixed: Dev versions of some packages were being installed. (#4003)

Unreleased development versions of some packages were being inappropriately installed into the Canopy User Python virtual environment. The released versions of these packages are now installed when a User environment is created. (As always, updating the Canopy application will make no change to your existing User environment by default. See “Package updates”, above.)

Fixed: Linux - Expected failures in urllib2 in Detailed Network Access Tests (#3919)

On non-RedHat Linux distributions, urllib2 tests in the Detailed Network Access Tests are expected to fail. To avoid confusion, these tests are now marked as such.

Fixed: Other

UnicodeEncodeError when viewing the tooltip on a unicode object in the Debugger’s variable browser (#3608).

“Unexpected Error AttributeError: ‘dict’ object has no attribute ‘subscription_level’” when logging in (#4013).

“AttributeError: ‘NoneType’ object has no attribute ‘control’ in FileHandlingService” when opening some files (#2256).

Miscellaneous stability improvements.




Release notes for Canopy 1.6.2 (13 January 2016)

This release is primarily a bug-fix release, with several new convenience features.

Known issue: In-application updates still mostly disabled (#3961)

For a few users, Canopy in-application updates are still being downloaded repeatedly, imposing excessive bandwidth costs on those users and on us. Therefore we have again disabled in-application updates for all users, except for a limited time immediately after release. If Canopy does not show an available update, please download and reinstall, as described in this knowledge base article. Our apologies for the inconvenience. We plan to change the update model in Canopy 1.6.3, which should then allow in-application updates from 1.6.3 to subsequent versions.

New: activate_canopy alias on Mac and Linux (#3960)

On Linux and Mac installations, a new alias activate_canopy will now be added to the user’s default shell profile when the User virtual environment is initially created, or when the “Set Canopy as default Python” option is toggled on or off in the Preferences dialog. Invoking this alias on a command line will activate the Canopy User Python virtual environment by placing it at the beginning of your PATH for the duration of that terminal session, so that when you type python, pip, enpkg, or other Python-related shell commands, they will found and executed from Canopy User Python.

This capability is already available when opening a “Canopy Terminal” from the Canopy Tools menu. With this new alias, there is no need to use the Canopy GUI to have access to the capability.

On Windows a similar capability is already available by by opening a Canopy Command Prompt window from the Windows Start menu or the Canopy Tools menu.

Improved: beta version of Package Manager v2

Version 2 of the Package Manager is nearing full release (planned for Canopy 1.6.3). In addition to the features mentioned in the previous release notes, it now:

  • Displays a history of all package installations done by Package Manager / enpkg. In this beta, use appearance / settings to include the history from all sessions. A new down-arrow icon allows you to copy to clipboard, the history from all sessions.
  • Provides incremental filtering of search results, like Package Manager v1.
  • Includes many other usability and stability improvements.

We encourage you to try Package Manager v2, and send us your feedback through the Canopy Help menu.

Improved: Disable update checks on new common installs, by default (#3939)

Since only the administrator should be updating Canopy when it is deployed as a common install, the option to perform automated update checks is turned off by default in new common installs. This can be changed with a new common install setup option), or subsequently by manually editing the central preferences.ini file.

Updated: New packages added to standard installers (#3973, #3969, #3968)

In addition to the normal updating of bundled packages as described above, the standard (small) installers now bundle soft dependencies of pandas (lxml, html5lib, BeautifulSoup4). This is mostly a convenience, as these packages are already available to all connected users in the Canopy Package Manager.

Fixed: Matplotlib 1.5.0 GUI backend issues (#3942)

A number of issues were identified in Matplotlib 1.5.0. Several of these affect the use of the Qt and Wx GUI backends. Our fixes for these are in Enthought’s patched Matplotlib 1.5.0-4, and along with many other fixes, are also in Matplotlib 1.5.1, just released and also bundled with this Canopy installer. (Note that bundled packages do not affect existing Canopy User environments; see “Package updates” above).

Fixed: Opening files or Jupyter notebooks on Windows network shares (#3937, #3938)

Attempting to use the Canopy editor or Jupyter notebook, to open a file located on a Windows network share, without using a mapped drive letter, would fail. This has been fixed.

Fixed: Cascading loop of error reporting windows (#3943)

In rare cases, trying to submit an error report using Canopy’s built-in bug reporter would result in another bug report window, which would result in another,... and so forth until Canopy was killed. This has been fixed for the identified conditions. Please let us know (by email to support@enthought.com, if necessary) if the bug reporter fails for you, in this or any other way.

Fixed: AVG was flagging some Canopy installers (#3940)

AVG should now be whitelisting Canopy installers so that they are not flagged as a threat. Please let us (and AVG) know if AVG security products block Canopy.

Fixed: Debugger License recognition under Open Common Install (#3846)

In Canopy 1.6.1, this was fixed for the standard Managed Common Install, but not for the Open Common Install, which has now also been fixed. Note that for most users, the Open Common Install is not recommended, and it has been removed in Canopy 2.0. This is discussed in the Knowledge Base article “Canopy Common Install Options”.




Release notes for Canopy 1.6.1 (25 November 2015)

This is the first public release of Canopy 1.6. These notes are in addition to the release notes (below) for Canopy 1.6.0, which was a limited release.

Updated: Python to version 2.7.10 (#3799)

The Python included with Canopy has been updated from version 2.7.9 to version 2.7.10. This Python version resolves Canopy startup problems for some Windows users. It also includes a number of SSL-related improvements, and other fixes. See the change log at https://hg.python.org/cpython/raw-file/15c95b7d81dc/Misc/NEWS

New & Fixed: Jupyter (IPython) notebooks open in a standard browser (#3801 etc)

For better compatibility with the fast-moving Jupyter project, the Canopy editor now opens all Jupyter (IPython) notebooks in your default web browser. To support this capability, users who retain pre-existing Canopy User Python environments must update IPython in the Package Manager or using the enpkg command-line utility. For details, see “Using Jupyter (IPython) Notebooks in Canopy” in the Enthought Support Knowledge Base.

Fixed: Errors in proxy settings in preferences dialog (#3746 etc)

Canopy’s proxy settings are usually configured either by setting environment variables, or in Canopy’s preferences dialog (which, if enabled, overrides any environment variables). When the proxy is configured in the preferences dialog, the user may also specify whether these settings should be passed to subprocesses, notably the IPython/Jupyter kernel and Canopy Command Prompt / Terminal.

In previous versions of Canopy, proxy preferences settings have been inconsistently applied. This has been fixed.

For more information, see “Using Canopy Behind a Proxy Firewall” in the Enthought Support Knowledge Base.

Improved for some users: Windows and Mac System Proxy Settings (#3878)

For users behind a simple (non-authenticated) proxy firewall, whose server and port addresses were specified in the standard Windows or Mac OSX settings, it is no longer necessary for Canopy users to set either environment variables or Canopy preferences in order to log in, update packages, or update Canopy. The documentation browser still requires specific proxy configuration. A forthcoming version of Canopy will also obtain proxy user ID and password from the OS, and will also support the documentation browser’s use of these sytem settings.

New: Optional beta version of Package Manager v2 (#3338)

Users may now optionally use a beta release of a new Package Manager. While this tool’s UI is still rudimentary, it does provide:

  • User selection of standard repositories (free, commercial, pypi and GPL)
  • Support for private repositories (with Enthought Deployment Server)
  • New GPL repository isolating GPL-like licenses
  • The deprecated and unmaintained “PyPI mirror” repository is not activated by default, avoiding considerable user confusion
  • Performance and stability improvements

Known Issue: Original Package Manager sometimes needs a Canopy restart (#3900)

After you change Canopy’s connection or login status (e.g. logging in or changing the proxy specifications), the original Package Manager does not always correctly detect this status change. The workaround is to restart Canopy. This will not be fixed in the original Package Manager. Package Manager version 2 (now in beta, see previous item) fixes this.

Improved: Managed Common Install setup (#3767, 3820, 3785, 3898)

The Managed Common install, new in Canopy 1.6.0, has been improved to further smooth the setup process for the installing administrator. For details, see “Canopy Common Install options” in the Enthought Support Knowledge Base.

Fixed & Improved: Qt/Pyside is now the default GUI backend in terminal and notebook (#3723)

To avoid conflicting assumptions about whether Wx, Qt/PySide or Qt/PyQt is used as the GUI backend for your Python programs, and for better compatibility with the default assumptions inside the Canopy GUI – the default GUI backend is now Qt, and the default Qt bindings package is now PySide.

Therefore, if your code implicitly assumes that Wx or PyQt are the backend, you will need to change your code or else specify them before your code runs, e.g. by setting ETS_TOOLKIT and/or QT_API environment variables, or by using IPython/Jupyter’s --gui, --matplotlib, or --pylab startup options, or the equivalent magic commands or Jupyter or matplotlib configuration file settings.

Heads up: We expect that Qt will remain the default backend for a long time. However we plan to transition to Qt5 in the coming year; given the current state of PySide, this would require a change from PySide to PyQt.

For additional discussion or late-breaking news about GUI backend specification, please see the article “Python GUI backend choices” in the Enthought Support Knowledge Base.

Fixed: Unable to use GUI backends other than PySide (#3821)

In Python programs running within the Canopy 1.5 GUI, PySide was imported implicitly even when not required, blocking the use of PyQt or other GUI backends. This has been fixed.

Fixed: Inconsistent treatment of debugger and repository licenses (#3846)

A licensed user might be recognized in one Canopy window but not in another. This has been fixed.

Fixed: Debugger License recognition under Common Install (#3846)

Users who are online but not logged on will now have their shared licenses honored.

Fixed: Segmentation fault on startup on Ubuntu 14.04 (#3797)

In Canopy 1.5.1 and higher, a library mismatch caused this error. (Temporary fix was described in https://support.enthought.com/hc/en-us/articles/205961400). This has been fixed.

Fixed: Symantec was flagging some Canopy installers (#3895)

Symantec should now be whitelisting Canopy installers so that they are not flagged as a threat. Please let us (and Symantec) know if Symantec security products block Canopy.

Partially fixed: Corrupted configuration files can prevent Canopy startup (#3873, 3879)

If the user’s preferences.ini or .enstaller4rc files became corrupted, this could prevent Canopy from starting. This has been fixed in most cases.

Fixed: Other

Update Detailed Network Access Tests (#3867)

PDB files were omitted from Windows Canopy installers in Canopy 1.5.3. (#3828)

The Pyflakes syntax checker was broken on Windows and Linux in Canopy 1.6.0. (#3837)

Linux permissions problems (#3784)

Many miscellaneous stability fixes

API change: MKL extension functions (#3877)

Our build of MKL has long included several added utility functions (get_version_string, thread_free_buffers, get_cpu_clocks, get_cpu_frequency, set_num_threads, and get_max_threads) If you use any of these functions, the new package mkl_service must have been installed. Since this is now included in all Canopy installers, no action is needed on new or clean Canopy installations. If you are working in an existing Canopy installation and update the MKL package, then you must also install the mkl_service package. No change in your code is needed. This refactoring is in preparation for updating the version of MKL provided in Canopy Python.




Release notes for Canopy 1.6.0 (24 August 2015)

Canopy 1.6.0 is a limited distribution release, focused on providing improved common install options to institutional users.

New: “Managed Common Install” for institutional multi-user setup (#3747)

A new “managed common install” configuration is available. For institutional multi-user setup where a standard configuration is desired for all users, managed common install is preferable to Canopy’s existing “common install” (now called “open common install”) configuration.

With a managed common install, individual users do not have their own System and User environments or directories; instead, all users share the same System and User environments, which are maintained by an administrator.

Creating a managed common install is now an option of the Canopy command line tool. See the next item.

New: Canopy_cli and Windows installer options (#3518)

The Canopy command line tool (Canopy_cli) now has a post-install-setup command, including options for specifying the target path for common installs, and the source path for shared Canopy license files.

These same options can also be specified when installing Canopy on Windows using msiexec.

For details, please see “Canopy CLI post-install-setup” in the Enthought Support Knowledge Base.

Fixed: Network service errors (#3748)

A problem causing network service errors when trying to run canopy_cli update has been fixed.

Fixed: ValueError in Editor (#3294)

In some situations using tab-complete in the code editor could result in a ValueError exception. This has been fixed.

Fixed: EOFError in bootstrap (#3738)

If a particular file in the preferences folder was corrupted, then the Canopy application could produce an EOFError during startup. This has been fixed.

Known Issue: IPython Notebook server error when working behind proxy (#3729)

Beginning with Canopy 1.5.3, some users working behind a proxy firewall are unable to work with IPython notebooks. We are investigating with high priority.




Release notes for Canopy 1.5.5 (3 July 2015)

Updated: Qt GUI toolkit (#3676)

The QT GUI toolkit used in Canopy has been updated to version 4.8.7. This should provide stability improvements to Canopy on OS X Yosemite.

Fixed: Uninstalling Canopy on Windows removed User environment (#3701)

A regression in Canopy 1.5.3 caused the System and User environment directories to be deleted when Canopy was uninstalled. Since uninstallation and reinstallation is sometimes necessary to update Canopy, this could disrupt a user’s working environment when their only intention was to update the Canopy application.

Fixed: Uninstalling Canopy on Windows failed (#3696)

Under some circumstances, especially when Canopy had been installed for all users on Windows systems with User Access Control enabled, uninstalling Canopy failed, making it impossible to install a new version of Canopy. This has been fixed for the scenarios of which we are aware.

If Windows fails to uninstall Canopy (for example, uninstalling a version of Canopy older than 1.5.5 under the above conditions), you can use Microsoft’s MsiZap utility. See the note at the end of the Windows section of “Uninstalling and resetting Canopy” in the Enthought Support Knowledge Base.

Fixed: Canopy in-application update was disabled (#3718)

An persistent problem in Canopy’s in-application update feature caused extreme bandwidth burden, requiring us again to disable these updates. This has been improved (fixed, we hope!) in Canopy 1.5.5, which means that updates to subsequent versions of Canopy should again be possible from Canopy 1.5.5 (not from earlier versions). For more information, see “Canopy shows no updates available” in the Enthought Support Knowledge Base.

Fixed: Missing Tcl/Tk library (#3699)

On Windows in Canopy 1.5.4, the tcltk library was missing, so that Tcl / Tkinter / Turtle programs would not run. This has been fixed.




Release notes for Canopy 1.5.4 (12 June 2015)

Resolved: Broken proxy handling (#3690)

A last-minute change in Canopy 1.5.3 broke proxy handling for some users. This has been fixed.




Release notes for Canopy 1.5.3 (10 June 2015)

This release focuses on bug fixes, stability, and laying a foundation for future features and a quicker release cycle.

Updated: Python to version 2.7.9 (#3234)

The Python included with Canopy has been updated from version 2.7.6 to version 2.7.9.

Updated: IPython versions (#3457)

The Canopy GUI application’s editor now includes IPython 2.4.1 in the Python panel (a QtConsole) and Notebook. IPython 3.1 (and above, when released) can be used in a Canopy Command Prompt or Canopy Terminal, which can be opened from the Canopy Tools menu, or when using the User Python environment outside of the Canopy application.

Resolved: Restart required before Package Manager respects login (#3137)

At times the Package Manager would not recognize that the user has a valid subscription, even after repeating login, until after Canopy was restarted. This has been fixed – if your subscription status changes, and you close and reopen the Package Manager, it will recognize your new subscription status.

Improved: Proxy support and testing (#3214)

In Canopy 1.5.0 and 1.5.2, but not mentioned in the release notes of those versions, there were many improvements in Canopy’s support for operating behind a proxy firewall. There are additional improvements in Canopy 1.5.3. For overview and how-to, see “Can I use Canopy Behind a Proxy Firewall?” in the Enthought Support Knowledge Base.

Improved: Internal networking code refactored (#3534)

All network communication code within Canopy, including the Package Manager, account authentication and license management, has been rewritten to provide more consistent communications across the entire application. The result is better proxy and SSL support now, and a clear path to more improvements in the future. Also a new item has been added to the networking preferences dialog to enable or disable SSL certificate verification, which may still have problems with some incorrectly configured proxy servers.

Resolved: Setuptools replaces distribute (#3548)

The newest version of the setuptools package (16.0) is now installed in Canopy Core, instead of the distribute package. (The distribute package was a fork of the setuptools package, and has since been merged back into setuptools.) Properly written setup scripts should be able to use the new setuptools without major problems. Newly created User Python environments will also include setuptools.

Users with existing User Python environments are encouraged to install setuptools in those environments, using the Package Manager or the enpkg command-line utility. Also, the new setuptools will automatically be installed in your User Python environment if you install or update any package which specifies a runtime dependency on setuptools, most notably pandas.

Resolved: ETS toolkit defaults to Qt in Canopy Command Prompt or Terminal (#1114)

The backend toolkit for the Enthought Tool Suite now defaults to ‘qt4’ instead of ‘wx’ for Python scripts run from Canopy Command Prompt or Terminal sessions started from the Canopy Tools menu. This is done by setting the ETS_TOOLKIT environment variable (see below) in those sessions, unless this variable was already set in the Canopy’s application’s environment.

Because the default toolkit for ETS itself is still ‘wx’, this change does not affect code run in other Command Prompt / Terminal sessions (including the Canopy Command Prompt in the Windows Start Menu). To set the backend toolkit in these sessions, set the environment variable ETS_TOOLKIT to ‘qt4’, or include code such as the following early in your program, before any UI initialization has been performed:

from traits.etsconfig.api import ETSConfig
ETSConfig.toolkit = 'qt4'

Users who depended on the ‘wx’ toolkit being selected by default in Canopy Command Prompt / Terminal sessions can effectively restore the previous behavior by using either of the above methods (but specifying ‘wx’, rather than ‘qt4’).

Code run directly in the Canopy GUI already defaults to ‘qt4’ unless Canopy Python’s pylab backend preference is set to wx. This behavior has not changed.

Resolved: Fail to build Sphinx documentation that uses pydoc (#3490)

Building sphinx documentation which uses pydoc, could fail with this error: "AttributeError: 'module' object has no attribute 'getdoc' This has been fixed.

Improved: System-wide Installation (common install) configuration (#2779)

It is now possible to configure a system-wide installation so that individual users will not be prompted for their environment path. See “Understanding a Canopy system-wide installation”.

Issue: On non-RHEL Linux, urllib2 can not connect to https sites (#3612)

This is due to increased security in Python 2.7.9 intereacting with the distribution-specific configuration. For details, possible solution, and workaround, see this article in the Enthought Support Knowledge Base.

Resolved: Bug reporter fails if there is Unicode in the log (#3679)

Users with non-ASCII Enthought login names, or others for whom Unicode characters appeared in the log, were unable to submit a bug report including the Canopy log file. This has been fixed.

Resolved: in Canopy 1.5.2, incorrect virtual environment inheritance (#3681)

In Canopy 1.5.2, canopy_cli venv -s, run in the User environment, created a virtual environment which did not inherit from User. This has been fixed.

Other improvements

There have been many other internal fixes and improvements providing better stability and maintainability, including some fixes for issues in the Canopy Debugger.




Release notes for Canopy 1.5.2 (30 January 2015)

Resolved: Crashes when waking from sleep on OSX (#1199)

Some users of OS X Mavericks and Yosemite experienced Canopy crashes when the computer went to sleep or changed its network connection while Canopy was running. Canopy now uses a new upstream version of the Qt GUI toolkit library, which fixes this issue.

Resolved: SSL cerificate verification failures (#3263)

Some institutional users running behind a proxy firewall were able to configure Canopy for the proxy, and to pass the proxy tests, but were still not able to use the Package Manager or the Canopy GUI debugger. This was due to incorrectly failing SSL certificate verifications through the proxy. This release includes a workaround. A more permanent fix is planned for Canopy 1.5.3.

Resolved: Repeated inappropriate application update downloads (#3299)

When the user does not have write permissions to the application installation folder, an application update would be downloaded, but could not be installed. This cycle would repeat indefinitely, potentially wasting much bandwidth. Now Canopy will only download its update files if the user has the necessary write permissions.

Resolved: Windows: Error when creating Canopy Command Prompt shortcut (#3362)

When a user starting Canopy for the first time under a multi-user Common Install configuration coes not have write access to their Windows Start menu, Canopy was not able to create a Canopy Command Prompt shortcut in the Start menu, so could not complete the setup. This is now handled gracefully. Note that users of more typical (non-common-install) configurations must still have write access to their start menus during first startup so that the IPython PyLab shortcut (and potentially others) can be created.

Resolved: Welcome screen logout blocked (#3425)

For users of legacy non-webservice repositories, the Welcome screen did not permit logging out. This has been fixed.

New: Advanced networking connectivity test (#3343)

To help resolve network connection problems (especially behind proxy firewalls), a network access test tool has been added to the Canopy Preferences dialog’s Network tab. If Canopy is experiencing problems connecting to Enthought’s servers (e.g. for the Package Manager or debugger authentication), then the results of this test may help Enthought support diagnose the problem and suggest solutions.

New: huge installer for disconnected and some institutional users (#3318)

For subscribers without an internet connection, and institutional subscribers doing automated installation for users who are blocked from installing packages themselves, Canopy 1.5.2 provides an installer containing approximately 300 packages. Because its disk footprint is so large (approximately 3 GB) and most users will only use a few of these packages, we strongly recommend that most subscribers install Canopy from the standard installer, which includes approximately 55 packages, then add other packages as needed.




Release notes for Canopy 1.5.1 (24 November 2014)

Resolved: Not clear that subscribers must log in to use debugger (#3169, #3187)

It was not clear to subscribers that they must log in to Canopy to gain access to the debugger features. This has been clarified in the UI and documentation.

Resolved: Issue fetching or using debugger license (#3177, #3178)

The email login ID was inappropriately case-sensitive during debugger license authentication. This resulted in the debugger not being enabled for the user if they logged in with a user ID with upper/lower case differences. This has been fixed.

Resolved: Migration errror (#3176)

Upgrading from Canopy < 1.4.0 could cause a failure in one of the migration scripts due to the use of older APIs. This specific migration script is not needed any longer due to other changes so it has been disabled.

Resolved: IPython Notebook fails loading content (#3181)

It was possible that only the first 2 cells of a notebook would be loaded from a saved IPython notebook file. This has been fixed.

Resolved: Update failure with corrupted preferences file (#3183)

If Canopy’s preferences file had incorrect syntax or other errors then it could cause a Canopy update to fail. Canopy will now gracefully recover from this problem situation.

Resolved: Unicode errors on non-ascii pathnames (#3180)

Added better handling of Python executable paths which might contain non-ascii characters.

Resolved: Missing item on Python pane directory drop-down menu (#3190)

The “Change working directory” menu item on the Python pane’s drop-down menu was missing, and now has been restored.




Release notes for Canopy 1.5.0 (19 November 2014)

New: Python Debugger (Beta)

Canopy now includes a Python GUI debugger, available to subscribers. It is tightly integrated with IPython’s debugger, and adds GUI tools for stepping through code and setting breakpoints. It also provides a variable browser that makes it quick and easy to inspect variables in the current Python namespace, including complex objects such as NumPy arrays. Full documentation is available within Canopy in the Help menu’s Documentation Browser, and online at Canopy Debugger Guide.

New: Run Configuration (#353)

When running a program from the Canopy Editor you can now specify the working directory and the command-line parameters that should be used when running the program. These are specified in the Run Configurations dialog, accessible from the Run Menu or the Run toolbar dropdown menu. The same run configurations can also be used when running the program in the new debugger.

New: Canopy Update notice in Package Manager (#1586)

When a Canopy GUI application update is available, a notice will now be shown in the Package Manager, in addition to the Welcome window as before..

New: IPython pane scrollback length (#1386)

A new item has been added to the Canopy Preferences dialog (Python tab) that allows the user to set the number of lines that will be buffered for scrolling back, in the IPython pane in the editor window.

Updated: IPython used within Canopy GUI updated to version 2.3 (#2964)

The IPython console and IPython notebooks in the Canopy GUI editor now use IPython 2.3. IPython 2 was a major release with many changes to notebooks including support for interactive widgets, directory navigation, modal user interface, improved security, and many other enhancements and bug fixes. See What’s new in IPython 2. Note that the latest version of IPython is usually available in a Canopy Command Prompt or Canopy Terminal window (see https://support.enthought.com/entries/22305234).

Updated: Package Manager improvements

The Canopy Package Manager internals have been updated to use the newer enstaller APIs. The Package Manager is now more robust. Multiple-package installs (e.g. “install all...”) can be canceled cleanly.

Issue: Linux: Default editor font is not fixed-width on CentOS (#2822)

When running Canopy on the Centos Linux distribution, the default editor font is proportionally spaced instead of being fixed-spaced. This causes text columns to not line up correctly. A fixed-spaced font can be selected by going to Edit -> Preferences and selecting a different font.

This issue is not present on other Linux distributions that we test on.

Resolved: Highlight active pane in the Editor (#1750)

The active pane in the code editor window is now highlighted to help the user keep track of the keyboard focus.

Resolved: Improved login credentials management (#1482, #1482)

User logins are now better synchronized between the Canopy Welcome window, Canopy Package Manager, and command-line enstaller/enpkg.

Resolved: Font preference changes required restart (#2418)

Changes to the editor font preferences on Windows now take effect immediately instead of requiring a restart.

Resolved: Qt SVG plugin fixed (#1974)

Changes have been made that fix the runtime finding and loading of the Qt SVG plugin image handler, as well as other Qt plugins.

Resolved: Autoscroll the Python pane (#1071, #2537)

Canopy is now smarter about keeping the final lines of the Python pane visible when there is output, or when input is needed.

Resolved: Drag and Drop of files to editor (#2201)

Drag and drop of unrecognized file types will no longer be refused, even if the filename extension is not recognized, provided that the file contains plain text.

Resolved: Protect proxy environment values in subprocesses (#2978)

To improve security: when providing proxy settings in the Preferences dialog, you may now specify that Canopy should not pass these proxy settings via environment variables to the IPython kernel process, nor to a Canopy Command Prompt or Terminal.

Resolved: Keep IPython CWD synced to editor (#3021, #3041)

If IPython was busy sometimes the current working directory would not stay in sync with the current directory of the active editor, when this option was chosen.

Resolved: Automatic update preference setting ignored (#2453)

By default Canopy automatically downloads, but does not install, application updates. This behavior can be disabled by going to the Canopy Preferences Dialog (Edit -> Preferences or, on Mac OS, Canopy -> Preferences), and unchecking the toggle button. A bug in previous versions caused the updates to be downloaded but not reported. This has been corrected and Canopy no longer checks for the availability of updates, or downloads them, when the preference is unselected.

Resolved: Linux: Canopy can hang when Preferences Dialog opened when Canopy run as background process (#1933)

On Linux and Mac OS systems, it is common to start applications from a terminal and then place them into the background with the shell command ‘bg’. This disconnects the application from the terminal input. In general this has no impact on Canopy, but a problem with the Preference Dialog would cause Canopy to hang if the dialog is opened after Canopy is placed in the background. This problem has been corrected.

Resolved: Some error dialogs displayed even when “–no-gui-setup” is specified (#2098)

Canopy offers a number of options for installing and setting up Canopy via command-line commands. One of the options, –no-gui-setup, allows the user setup process to be run without GUI interaction. In previous releases, several error dialogs could be displayed, either incorrectly appearing to users to resulting in incorrect error messages in the terminal (“Unable to connect to X server” on Linux systems). This has been corrected.

Resolved: Misleading error when incorrect credentials used during Welcome Screen login (#1633)

When logging in through the Canopy Welcome Screen, if wrong credentials (username or password) were used the error message indicated that it could be a network connectivity issue. The error message has been corrected to better indicate the source of the problem.

Resolved: Password reset failed in Welcome Screen (#2922)

The “Forgot your password” feature in the Canopy Welcome screen login page gave a “Connection Error”. This has been corrected.

Resolved: Windows: PTVS Intellisense shows too many packages when used with Canopy (#2947)

PTVS is Microsoft’s Python Tools for Visual Studio application. Canopy includes integration that allows it to work seamlessly with PTVS. In the previous release, the integration would cause the auto-completion (Intellisense) features in PTVS to incorrectly show packages in virtual environments which were not accessible. This has been corrected.

And many more...

In addition to the above there have been many changes to improve the stability and security of Canopy, and also many little changes to improve the look and feel and ease of use.




Release notes for Canopy 1.4.1 (11 June 2014)

New: Support for multiple virtual environments in Python Tools for Visual Studio (#1819)

Canopy 1.3 added support for using Microsoft’s Python Tools for Visual Studio (PTVS) package with Canopy. Canopy’s User Python environment automatically apears in the PTVS Python Environments list. However, there was no way to get additional virtual environments created from the command line to appear in the list.

With this release, you can now register a virtual environment and it will automatically appear in the Python Environments list. For more details see the Canopy Users Guide description of the command line interface.

Resolved: Better handling of plugin and addon failures (#1543, #1581, #2110, #2135)

Only show plugin load failure warnings once instead of each time Canopy starts, and do better cleanup of plugins that have been removed.

Resolved: Python executable framework build on OSX (#2082)

The command-line python binary on OSX is now a framework build again. This means that it is equivalent to using the pythonw executable, and can be used to run applications which use wxPython.

Resolved: Better handling of migration script errors (#1224)

Canopy uses migration scripts during the update process to update internal files and settings from release-to-release. Failure handling around the running of these scripts has been improved to reduce some causes of upgrade failures.

Resolved: (Windows) “Process cannot access file because it is being used by another process” (#1776, #1952)

This error occurs when Canopy is already running and the user tries to run Canopy from the command line or open a file with Canopy from the Windows desktop (such as double-click a .py file). Typically the error is reported against the file “bootstrap.log”. The startup process has been changed to be more tolerant of locked log files and to use an alternate file name.

Resolved: Display standard output from C code (#1959)

Any stdout and stderr output from C extension modules or the libraries they use will now be shown in the IPython panel in Canopy, similar to how the Python sys.stdout and sys.stderr streams are already being handled. This means that if an extension module calls the C printf function, or similar APIs, then that text will be seen by the user when the code is running in Canopy.

This resolves an issue where C extensions which generate substantial output to stdout or stderr could cause the Canopy IPython prompt to hang.

Resolved: (Windows) Window appears in upper, left coner of screen, partially off screen

After the Canopy 1.4 update some Windows could appear in the upper-left corner of the screen and up too high such that the window frame was off screen. This has been corrected.

Resolved: Level 1 updates (#2132)

A problem that was preventing Level 1 updates (simpler, egg-only updates) from working was fixed.

Resolved: Undo goes too far back (#858)

The undo feature in the code editor has been fixed to only go back as far as the loading of the file, instead of allowing the user to undo back to before the file was loaded.

New: Add Find feature for IPython Notebooks (#1851)

The user can now search for text within the Python Notebook in the Editor window, using the Seach/Find menu item or the associated shortcut key.

New: Restart in recovery mode (#1536)

The bug reporter dialog will now give the user the option of restarting Canopy in recovery mode, in order to perform a factory reset of the System virtual environment. The “factor reset” mode does not impact the User Python environment and helps Canopy recover from some failure-to-start errors.

Resolved: Better font sizes in documentation browser (#2242)

A bug was fixed which caused the fonts used by default in the documentation browser to be either too small or to large, depending on platform.

Resolved: Loading files with incorrect encoding (#1653)

Previoiusly files with an encoding indicator line which used an unknown ecoding name would fail to load. Now they will be loaded using a default encoding.

New: Canopy preferences path (#2243)

The CANOPY_CONFIG environment variable can now be used to specify the location of the Canopy preference files, log files, etc. This environment variable specifies the path to the directory containing the preference.ini file and other configuration files for Canopy.

By default these files are located in the following directories.

OS Default path
Windows %APPDATA%\Enthought\Canopy
Linux & Mac OS ~/.canopy



Release notes for Canopy 1.4.0 (21 April 2014)

New: Canopy Command Prompt or Terminal (#1022)

Users can now open a new Canopy Command Prompt (Windows) or Canopy Terminal (Mac OS or Linux) from the Canopy application’s Tools menu. This can be used to perform command-line installation in the Canopy User Python environment, or to run ipython or other command-line tools or scripts in that User environment. Details at Canopy Command Prompt or Terminal.

New: Package Manager Updates (#1491, 1492)

Some changes have been made to the Package Manager and the enpkg command-line tool to help clarify which packages are part of the supported Enthought distribution, and which come from the unsupported pool of community / PyPI packages that Enthoughts offers on an as-is basis.

New: Copy Package Manager history to clipboard (#1367)

The package install, update and remove history in Package Manager can now be copied to the clipboard by right-clicking on the history items. This will be helpful information for some types of support requests.

New: Open IPython Notebooks with Canopy (#948)

On Windows and OS X, Canopy can now be used to open IPython Notebook files (*.ipynb files) by double-clicking them on the Desktop or in the system file browser, or by using the “Open with...” option from a context menu.

New: Proxy environment variables (#1319, 1045)

The ‘Network’ tab of the preferences dialog now shows the values of environment variables related to network proxies. This feature can be helpful in figuring how whether Canopy is connecting to a proxy service, and what values it is using.

Canopy also now recognizes and either corrects or reports mal-formed values specified by these environment variables. Some corporate environments use non-standard forms that previous were not recognized by Canopy.

New: Knowledge base access (#1350)

A new menu item on the Help menu labeled “Support Knowledge Base” will take you to Enthought’s support site. This site is continuously updated with answers to common questions, late-breaking problems and solution, and other important information.

New: Enpkg installed in new virtual environments (venvs) (#1200)

When a new virtual environment is created with the Command line interface, Enthought’s enstaller package (containing the ‘enpkg’ command and other utilities) is now installed into the new environment by default. This provides an easy means to start installing additional packages.

Resolved: Unclear how to exit IPython help when viewing multiple pages (#303)

Previously it was unclear how to exit from viewing the IPython pane’s help text when the text spanned multiple pages (press Esc). The pager has been modified to show the available keyboard commands.

Resolved: Use .py extension by default (#303)

Canopy will now default to using the .py filename extension when saving new files.

Resolved: (OS X) IPython notebook tool icons (#1047)

The toolbar icons used in the IPython Notebook, which were broken on OS X, have been fixed.

Resolved: Multiple file selection through bug-reporter file dialog (#654)

Selecting and attaching multiple files is now possible through the file dialog of the bug reporter.

Resolved: Syntax highlighter in the Python pane (#1567)

A bug that caused incorrect context-sensitive syntax highlighting in the Python pane has been fixed.

Resolved: Windows: Window is located off-screen, can’t be moved (#84)

In the Windows version it was previous possible for Canopy to start up with the default location of a window off the visible screen where it couldn’t be found or moved. This could happen when switching from a multiple-monitor setup to a single-monitor setup.

As of Canopy 1.4, when Canopy starts, it now ensures that the sizes and positions of windows that are restored from the last session are still valid. This caused problems when the number or size of monitors attached to the user’s computer had changed since the last session.

Resolved: (Windows) Automatic directory changes on network shares (#1162)

When the ‘Keep Directory Synced to Editor’ feature was enabled, and the current file was on a Windows network share, an incorrect %cd (change directory) command was generated, causing the sync to fail. This has been fixed.

New: Copy file paths to clipboard (#1007)

A context menu action in the file browser pane now allows a file’s path to be copied to the clipboard.

Resolved: Mac OSX: Shortcut keys in IPython Notebook (#955)

Clipboard shortcut keys like Cmd+V now work as expected in IPython Notebooks when they are used within the Canopy application. In addition shortcuts for zoom-in and zoom-out (Cmd+/-) have been implemented.

Resolved: Windows (64-bit): Package installation fails with “invalid command ‘egg_inst’” or similar (#1760)

On Windows with Canopy 1.3 there was a problem when installing eggs with the package manager or with the enpkg command-line tool which resulted in incomplete installation of the egg’s meta-data. This problem has been fixed, and when Canopy 1.4 is run for the first time any incorrect egg installations in the User Python environment will be repaired automatically. If the user has other venvs they have created themselves then those can also be repaired using the enpkg-repair command-line tool.

Details can be found in the Enthought Knowledge Base.

Resolved: Incorrect build flags in distutils and python-config (#1585)

This affected Canopy 1.3.0 - mostly on Linux, and to a lesser extent on OSX. Python 2.7.6 made a small change in how the compile and link flags are generated when building extension modules. As a result, when using Canopy to build an extension module, the build folders (non-existent on user machines) were used, instead of the correct installation folders. Canopy has now adapted to this change in Python, so the compile and link flags, generated from python-config and when using distutils and setuptools, will now refer to the correct installation folders.

Resolved: Robustness and stability improvements

Various other fixes have been implemented that improve the stability of Canopy and its tools, solving several less frequent but still annoying bugs. In addition some changes have been made to help Canopy recover better when problems do happen, and also to better report problems back to Enthought.




Release notes for Canopy 1.3.1 (21 April 2014)

Resolved: Windows 64-bit update issues

A problem was found in the update mechanism when dealing with DLLs loaded in memory with a base address above the 32-bit address space. This causes the Canopy platform updates to fail. The Canopy 1.3.1 update corrects the problem and is required to update 64-bit Windows versions to version 1.4. Other versions of Canopy do not require this patch.




Release notes for Canopy 1.3.0 (31 January 2014)

Updated: Python to version 2.7.6

Canopy’s python distribution has been updated from 2.7.3 to 2.7.6. This is a minor patch release to Python meaning that all existing 2.7.3 code is expected to run the same as before. Please see this Enthought Knowledge Base article for details.

Resolved: Python Tools for Visual Studio is unable to find symbols for python27.dll

Support for Microsoft’s Python Tools for Visual Studio (PTVS) was introduced in Canopy 1.2. An issue with finding a debug symbol library makes the mixed-mode debug option harder to use. This has been corrected in 1.3, details can be found in this knowledge base article.

Resolved: Canopy won’t let me update some packages in Package Manager

In some cases, the Package Manager UI would show an available update to one of the Canopy packages, but no option was provided to install the package. This issue is resolved and details are available in this knowledge base article.

Resolved: Incorrect font used for Canopy GUI on Mac OSX “Mavericks”

A change in the latest Mac OSX version “Mavericks” caused Qt to select the wrong system font, and thus the display font in Canopy wasn’t right. We have applied a patch to Qt to correct the issue and the fonts should display correctly now.

Resolved: Avoid hang-at-exit problem on OSX

In some situations Canopy on OSX could run into a deadlock when trying to exit the application. This would cause Canopy to still be shown as a running application even though it had been terminated. When performing an update, it would also cause a dialog to appear asking you to kill the existing Canopy processes. A workaround has been added to avoid the deadlock so Canopy can exit cleanly in a timely manner.

Updated: Qt and PySide

The PySide package has been updated to verison 1.2.1 with some additional community fixes added to Enthought’s builds. These changes improve the stability of the Canopy GUI. Users writing Python code that uses PySide and Qt should note the change as well as this change updates the user-visibile versions as well. No compatibility breaks are expected.

Issue: Use of enpkg in virtual environments created by user requires workaround

In Canopy 1.3 (and 1.2), there are several issues with virtual environments created with the Canopy CLI or directly with venv. These issues should be fixed in the Canopy 1.4 release. Please see this Knowledge Base article for more information.




Release notes for Canopy 1.2.0 (20 December 2013)

New: Windows: Python Tools for Visual Studio (PTVS) integration

Python Tools for Visual Studio is a free, open-source plugin which adds Python suport to the Microsoft Visual Studio development environment. Visual Studio with PTVS is a professional software development environment ideal for users and teams who need to develop and debug significant applications, especially those with mixed Python/C++/C environments. This compares with the Canopy analysis desktop which is tuned for scientists and analysts working with Python scripts and smaller applications, especially for interactive work with the IPython console and other analysis tools.

Canopy has been extended with native PTVS integration, allowing PTVS to automatically recognize Canopy. To examine the Python enviroments detected by PTVS, in Visual Studio go to TOOLS -> Python Tools -> Python Environments. Canopy is shown as “Enthought Canopy”.

The PTVS completion database will need to be refreshed from the Python Environments window before the first use to enable full code completion. Similarly, after new Python packages are installed via Canopy’s Package Manager it is necessary to refresh the completion database before the new packages will be available for completion.

Canopy supports PTVS under Visual Studio versions 2010, 2012, and 2013.

Resolved: Mac OS “Mavericks” support

The latest release of Apple’s Mac OS operating system code named “Mavericks” causes some compatiblity with the interactive IPython prompt and with IPython Notebooks. The issue causes both to run extremely slowly. If possible we recommend not updating your OS until the issuss are understood and resolved.

For users who are running Mavericks, Canopy 1.2 includes a fix that addresses most or all of the issues in the interactive IPython prompt and in IPython Notebooks. For ongoing status updates, see https://support.enthought.com/entries/22861925-OS-X-10-9-Mavericks-Python-Canopy.

New: pip installed in User virtual environment by default

The ‘pip’ command provide access to Python packages available on the PyPI repository and through other sources. This command has always been available to be installed via the ‘enpkg’ or ‘easy_install’ commands. With Canopy 1.2 ‘pip’ is now installed by default. The command can be found in the User\Scripts directory on Windows, or User/bin on Linux and Mac OS.

Note: users with existing Canopy installations will still need to install it manually if desired. The command to install ‘pip’ is:

easy_install pip

The easy_install command can be found in the User\Scripts directory on Windows or User/bin on Linux and Mac OS.

New: PySide & Qt developer tools included

The PySide and Qt installations within Canopy have been upgraded to include the respective developer tools such as ‘qmake’ and the UIC compiler. These tools can be found in the core Canopy installation tree. The “Core” installation is the location where Canopy is initially installed. See Where are all of the Python packages in my Canopy Python Environments? As a reminder, you never run Python directly from Core (except to start Canopy itself), but rather from a User environment which inherits from Core.

Note: Windows: “This installation package is not supported by your processor type”

This error typically occurs when the 64-bit Canopy install is run on a 32-bit Windows system. Users on 32-bit machines should make sure they select the 32-bit installer when downloading Canopy from https://www.enthought.com/downloads.

Resolved: “Unexpected error:ParseError:Invalid line at line “1”

This error occurred primarily on Windows systems and was the result of the preferences.ini file becoming corrupted. On earlier versions of Canopy the workaround is to exit Canopy and delete the preferences.ini file located in each user’s account.

Canopy 1.2 detects malformed preferences files, renames the file with a ‘.bak’ extension, and then loads with the default preferences.

Resolved: Canopy fails to start if environment variable HTTP_PROXY is set to invalid value

The environment variables HTTP_PROXY and HTTPS_PROXY are used on most operating systems to specify the host, port, and (optionally) a username and password of a proxy firewall to use when connecting to the internet. Many organizations use such servers. Canopy will honor these settings when making outgoing connections unless they are overridden from the Canopy preferences dialog.

Both environment variables are expected to be set to a value URL. For example:

http://user:passwd@proxy.enthought.com:8080

In previous releases if either environment variable was set to an invalid URL Canopy would fail to start. This release partially corrects this behavior to ignore the invalid value, but the error is only reported in the log file ‘main.log’ (i.e., the user is not notified directly).

Resolved: Linux, Mac OS: ‘canopy_cli venv’ creates scripts in bin directory with incorrect Python path

When using the canopy_cli venv command to create a new virtual environment, if the target directory is specified with a relative path, any scripts in the ‘/bin’ directory of the new virtual environment would have the wrong path to the Python interpreter (the “#!” line at the start of the file).

This issue was corrected for some virtual environments in the previous release and has been completely corrected now.

Resolved: Windows: –no-gui-setup does not work on headless servers

The Canopy_cli.exe command supports setting up and configuring Canopy environments from the command line, enabling deployment automation. The –no-gui-setup switch turns off GUI interactions for command-line usage. In the previous version the command still showed a progress dialog, causing the command to fail on headless servers.

This issue has been resolved.

Resolved: Windows: canopy_cli is not a valid win32 app

The 32-bit Canopy 1.1 installer incorrectly included a 64-bit binary version of the canopy_cli executable. This prevented the command from running on 32-bit system. This has been corrected.

Resolved: Windows: Python ‘PythonPath’ now set in Windows registry

When Canopy is set as the default Python environment on Windows it sets the following standard Python registry keys:

HKEY_CURRENT_USER\Software\Python\PythonCore\2.7\InstallPath
HKEY_CURRENT_USER\Software\Python\PythonCore\2.7\PythonPath

These are set to point to the User python environment and the Python executable under User, respectively. These keys are used by many third-party tools to integrate with Python.

Previous releases of Canopy did not set the second registry key, PythonPath. This value can be set in current installations by going to Edit -> Preferences and clicking ‘Set as Default’.

Resolved: MacOS: Open relative paths from the command line does not work

From the Mac OS command line, files can be opened directly in the Canopy editor via the ‘canopy’ command like this:

canopy myfile.py

This will open the file ‘myfile.py’ in the currently running Canopy instance or, if Canopy is not running, will start Canopy then open the file.

In Canopy 1.1 and 1.1.1 this command would fail when given a relative path to the file. This has been corrected.

Resolved: Linux: Warning: Unable to load library ‘icu18n’

On many Linux systems Canopy would issue this warning at startup. The warning was harmless and could be ignored and is no longer shown in Canopy 1.2.




Release notes for Canopy 1.1.1 (3 October 2013)

New: Updated to IPython 1.1

After tremendous work, the IPython team and community achieved their 1.0 release, quickly followed by version 1.1, with even more features. The Canopy GUI’s integrated IPython prompt in the editor window now uses IPython 1.1.

Please note that when ipython is run from an OS command prompt (terminal or shell), it will be whatever IPython version is installed in the Canopy User Python environment. This version may or may not match the IPython version used in the Canopy GUI itself, and can be independently changed. To install IPython 1.1 or any other version for use from the OS command line, go to the Canopy Package Manager and update the IPython package.

Issue: Canopy crashes occasionally during tab completion

We are investigating an issue in the integration between the code editor and the Qt text editor widget that can cause Canopy to crash when using the code completion feature (‘tab’ to complete symbol names). The failure happens rarely, particularly when ‘tab’ is pressed several times in quick succession, and appears to be timing-dependent. We can reproduce the crash and are investigating, with a target of fixing it for the 1.2 release in early November.

Issue partially resolved: Linux, Mac OS: ‘canopy_cli venv’ creates scripts in bin directory with incorrect Python path

When using the canopy_cli venv command to create a new virtual environment, if the target directory is specified with a relative path, any scripts in the ‘/bin’ directory of the new virtual environment will have the wrong path to the Python interpreter (the “#!” line at the start of the file). This path must be manually corrected in order for the script to work correctly.

This issue has been corrected for any virtual environments created, from now on, which are based on the Canopy User environment.

However, when such virtual environments are created from the core installation directory specifying a relative target path, the resulting scripts will still be incorrect in Canopy 1.1.1.

Workaround: to avoid having to manually edit the “#!” lines in these scripts, always specify an absolute path when creating such virtual environments.

This defect will be corrected in the 1.2 release planned for early November. Note that any scripts already created incorrectly will not be fixed, and must be manually corrected, or the virtual environment re-created.

Issue: ‘Canopy_cli.exe –no-gui-setup’ fails on Windows

On Windows, this option pops up a dialog, thus breaking installation automation. This will be fixed in Canopy 1.2. If you need a simple fix for this sooner, please contact canopy.support@enthought.com.

Resolved: Linux: Canopy fails to start on some X servers, VNC servers

At startup Canopy would begin to show the splash screen and then abort with no error message. The log file would only show the following message:

QtWarningMsg: fatal IO: client killed

The problem has been tracked down to an issue with some older X Window System servers which appear to be unable to handle high-resolution application icons. We have changed the icon and Canopy now works correctly on all tested X servers (including XMing on Windows) and VNC servers. Please report any continuing issues to canopy.support@enthought.com.

Resolved: Lock files, remaining after crash, block restart

After a crash or forced quit of Canopy, users were sometimes unable to restart Canopy without manually deleting several lock files in the user’s preferences directory. Canopy should now delete these files when appropriate.

Issue: Canopy reports stray Python processes running, fails with Unicode decode error

During the update process, Canopy will sometimes report that stray Python processes are still running and need to be closed before Canopy continues. This is primarily an issue on Windows where running processes often hold locks on files, thus preventing some files being updated. Canopy will prompt to terminate these processes before continuing. We are working to eliminate stray processes caused by Canopy’s operation; some are caused by execution of user code.

In some cases the dialog showing the remaining Python processes would cause Canopy to crash due to Unicode (non-English characters) in a path name. This issue has been resolved and Unicode characters are handled correctly.

Resolved: Check for updates appears to hang or take many minutes

The ‘About Canopy’ dialog box offers the option to check for application updates. In the previous release if no updates were present the ‘spinner’ indicating that a check was on-going would continue spinning for several minutes after the last check. This has been corrected.

Issue/Resolved: IPython Notebook cannot open local file when proxy set

In the previous release, an IPython Notebook would fail to open a local file when an HTTP proxy is set. The issue was that references to localhost were incorrectly passed to the proxy server as well.

On Windows and Linux this issue has been corrected. The issue is still open on Mac OS and will be corrected in the Canopy 1.2 release in early November.




Release notes for Canopy 1.1 (22 August 2013)

New: All-new command line interface (CLI)

A new command line interface (CLI) has been added for users who prefer to work from the command line, are writing automation scripts, or working on a machine without a graphical interface. The CLI supports setting up Canopy installations in networked environments where users wish to share a common environment, and creation of new virtual environments.

See Canopy Command Line Interface for details.

New: Full installers available to subscribers

For each OS platform, two versions of the Canopy installer are now available to subscribers. These differ only in the number of packages which are bundled into the installer file for immediate installation into Canopy User Python, when Canopy is first started. Canopy’s Express installer contains approximately 40 packages, including the entire core SciPy software stack. Subscribers can subsequently install additional packages as needed, via Canopy’s Package Manager. Canopy’s Full installer contains all 140+ Canopy packages).

The Express installers work well for subscribers who want to avoid installing unused packages. Likewise, if you started as a free Canopy Express user, and are now a subscriber, you can simply use Package Manager to add subscriber packages as needed. The Full installers are for subscribers who want to install all packages immediately, including those who are installing into environments with limited or no internet connectivity. The difference in installer sizes and disk usage is given below.

Platform Express Installer Express Disk Usage Full Installer Full Disk Usage
Windows 230 MB 900 MB 380 MB 1400 MB
Linux 280 MB 1180 MB 420 MB 1800 MB
Mac OS 230 MB 870 MB 350 MB 1550 MB

New: Support for non-GUI installs

One aspect of the new command line interface is support for non-GUI installs. This comes up when users don’t have access to a Graphical User Interface on their machine (such as when connecting via ssh), prerfer the command line, or need to automate the installation on a network or cluster environment.

The new canopy_cli utility supports a new switch --no-gui-setup which guides you through the setup from the console. See Setting up the User environment without a GUI in the Users Guide for more details.

New: Full production version on Linux

Canopy for Linux is now out of beta and in full production. Canopy is supported on RedHat Enterprise 5 (and compatible) systems and Ubuntu 12.04 LTS. In general, Canopy typically works without issue on RedHat Enterprise 6 (RH6) systems and other distributions. In particular, full support for RH6 is coming after additional testing on RH6 systems.

Security: Documentation Browser could execute arbitrary Python code

The Documentation Browser previously identified code segments in documentation and added icons for opening the code in the Canopy editor or executing the code in IPython. A potentially malicious webpage could have been crafted such that it automatically executed the Python code without the user taking action. This would only happen if the user navigated to the malicious page by entering a URL in the Documentation Browser’s address bar.

The Documentation Browser has been modified to no longer present the icons. Instead, a right- click menu generated by Python (instead of JavaScript) has been added with the same functionality. This removes the ability for JavaScript code to execute Python code.

Resolved: Package manager can not be interrupted during download, install

The previous version of Package Manager did not support a means of interrupting the download or install of a batch of packages. For large packages, or a large number of packages such as when “Install All Canopy Packages” was pressed, this could take a long time to complete, especially over slower Internet connections.

This has been corrected and there is now a ‘Cancel’ button on the UI.

New: System-level default preferences

On multi-user systems it is now possible to configure system-wide default preference settings. The preference file is the same format as the per-user preferences.ini file (see Where are the preference and log files located?). The system preference can be set by creating a preference.ini file (or copying a per-user one) to the root installation directory of Canopy. The default path to the root installation directory is shown below by operating system.

Operating System Default path
Windows C:\Program Files\Enthought\Canopy\App or see per-user install paths
Mac OS /Applications/Canopy.app
Linux ~/Canopy

Resolved: Canopy fails to set up environment when first run

In some cases Canopy would fail with the error “Failed to set up your environment”. This error could be triggered when the user’s home directory was stored on a network drive. The issue has been corrected.

Resolved: Linux: Canopy crashes when update was available and ‘Install on Quit’ is clicked

In the About Canopy dialog box, when an update was available clicking ‘Install on Quit’ could cause Canopy to abort. This was caused by an error in the code that closed the GUI and particularly showed up under Linux. This issue has been corrected.

Resolved: Windows: File opened from the command line now shown with the correct case

The Canopy command can be used on all platforms to open files from the command line simply by adding the name of a file to the command line. For example:

canopy.exe my_file.py

In the previous release, the file was opened using the case as typed on the command line instead of the case of the file itself. On case-insensitive file systems such as on Windows this worked correctly. However, it was then possible to have the same file open multiple times in Canopy, resulting in a confusing display. This has been corrected and the file is opened with the actual case of the file itself.

Resolved: Windows: MSI version reported as ‘0.9.1’

The MSI version in previous releases was not correctly tracking the actual Canopy version installed. This has been corrected and is reported as ‘1.1.0’ for this release. The MSI version will reflect the version of Canopy installed via an MSI, which may be an older version than is running if Canopy updates have been applied.

New: Canopy venv implementation support arbitrarily deep nesting of virtual environments

From Canopy you can create new virtual environment with the canopy_cli venv command. In the past venv supported nesting two layers deep. This restriction has been removed and it is possible to create arbitrarily-nested virtual environment.

For example:

canopy_cli.exe venv -s C:\venv1
C:\venv1\Scripts\venv.exe -s C:\venv2
C:\venv2\Scripts\venv.exe -s C:\venv3

In this example, since the -s switch is provided, venv3 can import any package that is installed into venv3, venv2, or venv1.

A common scenario for using nested virtual environments is to experiment with package changes without impacting a stable, working environment. For example, is venv1 is being used for a project and is work, venv2 can be created as above and it starts out with all of the packages from venv1. Then alternate package versions can selectively be installed in venv2 and code run it in for testing without impacting venv1.




Release notes for Canopy 1.0.5 (22 August 2013)

Resolved: Application hang when installing updates via “Install and Relaunch”

The previous release would frequently hang when applying some types of Canopy updates when “Install and Relaunch” was used. This update corrects the issue in advance of the 1.1 release.




Release notes for Canopy 1.0.4 (1 August 2013)

Resolved: Critical editor bug resulting in some buffers not being marked ‘modified’

Under rare circumstances, the ‘modified’ flag in the text editor is incorrectly set to ‘unmodified’. This results in no changes being saved when File -> Save is used and Canopy will not warn of unsaved changes before exiting. This can result in a loss of any edits made in the tool.

This issue has been corrected and we recommend all Canopy users update from 1.0.3 to 1.0.4.

Resolved: Windows: “Canopy is not your default Python environment” shown when not true

The preferences dialog (Edit -> Preferences) displays an informational message if Canopy is not currently configured as your default Python environment and provides a button to set up your environment to make it the default. In Canopy 1.0.3 on Windows this informational message is sometimes displayed when Canopy is the default environment, even after clicking the button to make it so.

This issue has been resolved and the detection algorithm has been improved. The display now also includes information indicating if another Python environment has been configured in the system PATH specification, making it so Canopy cannot be made the default.




Release notes for Canopy 1.0.3 (27 June 2013)

New: Proxy firewall support

Proxy firewalls are used by many organizations to control traffic to/from their networks and require that applications connect through the proxy server in order to access resources on the Internet. Canopy now supports preference items for configuring proxy support, available under Edit -> Preferences (Canopy -> Preferences on Mac OS). See the ‘Network’ tab.

Details of the proxy support and how to configure the settings are described in this knowledge base article on https://support.enthought.com.

Resolved: Windows: Third-party installers & tools unable to find Canopy install

The previous version of Canopy did not set a standard registry key that many third-party installers and Python tools use to find the default Python environment on Windows systems. As a result, non-Enthought Python package installers such as those produced by Christoph Gohlke were unable to install packages into Canopy. This has been corrected. When Canopy is made the default Python environment these installers should now find the User Python Environment.

Resolved: Linux Canopy installation files have User and Group ID set to “506”

When Canopy was installed to an NFS4-mounted file system under Linux the installation had the uid and gui set to “506”. This has been corrected and when the files are now extracted using the ‘tar’ command the -no-same-id flag is passed.

Resolved: Canopy update appears to hang at 100%

When applying an update to Canopy at times it would appear to “hang” at 98% or 100% complete and not return. This was a UI issue where the progress bar reflected the download process, but not the installation process, which could sometimes take several minutes or more. The UI has been changed to reflect the separate operations of download and installation.

New: clear recent files list

A context-sensitive (right-click) menu item now allows the recent files list in the code editor navigation tree to be cleared. A second menu item allows any missing / deleted files to be cleared. Additionally, individual files can be removed from the list by right-clicking on the item.

New: top-level directories added to navigation pane persist outside of sessions

The file navigation pane in the Code Editor (left-side of window by default) defaults to showing your home directory. This can be configured by right-clicking in the navigation tree and adding or removing directories from the list.

In the previous version this configuration was persisted when a session was saved (Window -> Save Window as Session or Window -> Save All Windows as a Session) and restored only when a session was restored. This has been changed to persist the configuration independently as well to a session so a session does not need to be restored. When you do restore a session with a different configuration of the tree, the configuration saved in the session takes precedences.

Resolved: Tcl / Tkinter is missing or does not function correctly

A combination of build errors caused some or all of the Tkinter (and Tck/TK dependencies) to be missing on Windows, Mac OS, and Linux installations. In some cases this would cause Tkinter to not import, and in others the package would import but would fail during usage. This has been corrected and Tkinter should function correctly on all platforms.

Resolved: Canopy setup fails when %HOME% is set to invalid directory

On Windows the environment variable %HOME% is not always set, and is sometimes set by third-party applications. If %HOME% is set to something other than your home directory, or particularly to an unwritable directory, Canopy would fail with an Unexpected Error during initial setup. This has been corrected.

New: preference for disabling automatic update checking

By default Canopy automatically checks for and downloads product updates as they become available. These updates are not installed until explicitly done so by going to Help -> Canopy Application Updates...

A new preference item has been added to disable the automatic downloading of updates for users with limited or metered Internet access. Updates can be explicitly downloaded by going to Help -> Canopy Application Updates... and clicking ‘Check for Updates’.

Resolved: Running an unsaved file with unicode content fails

Attempting to run a file in the IPython prompt (Run -> Run File) that has not yet been saved and contains unicode content would result in an Unexpected Error dialog. This has been corrected.

Resolved: OSError: Could not find C library or load any of its variants

On Mac OS Canopy sets the DYLD_FALLBACK_LIBRARY_PATH so modules can find shared libraries in the user Python environment as well as the core application install. The default for this environment variable was set incorrectly so some modules failed to find the C library. This has been corrected.

Resolved: Linux: libjpeg62 missing

Canopy depends on the library libjpeg62 to read JPEG-format images. Previous releases did not include this library and depended on it being available on the user’s system. However, this version is old enough that some Linux distributions no longer provide it. Canopy now includes this library.

Resolved: Windows: SSL/TLS libraries missing for Qt

The previous version of Canopy was missing some libraries necessary for SSL/TLS support, and thus the ability to display secured HTTP (HTTPS) pages in the documentation browser. This would cause the pages to show a network error. This has been corrected and HTTPS pages now display correctly in Canopy.

New: Option to remove end-of-line white space from files

White space (spaces, tabs mostly) at the end of lines of programs doesn’t usually have an effect, though many programming editors automatical remove it. If some editors remove it and some don’t, this can cause problems when comparing two versions of a file if the comparison utility doesn’t ignore white space differences.

An option has been added to the Preferences dialog under the ‘editor’ tab to automatically strip white space at the end of lines. This occurs whenever the file is saved. By default, this option is off for compatibility with previous Canopy versions.




Release notes for Canopy 1.0.2 (27 June 2013)

Resolved: Update installation fails or hangs if Canopy installed as admin / root user

NOTE: Please look for the Canopy 1.0.3 release following closely after 1.0.2

A defect in previous releases could cause the installation of Canopy updates to hang and fail if Canopy was installed using escalated privileges. For example, this could happen if Canopy was installed as an Administrator user but tries to apply the updates when running at standard user access levels. The issue would occur when Canopy attempted to request increased access levels from the OS (Windows, Linux, or Mac OS).

The 1.0.2 release fixes this issue in preparation for the 1.0.3 release. As such, 1.0.3 will only be visible after 1.0.2 has been applied.

New: Update notifications available on Welcome Window

An indicator showing when Canopy updates are available has been added to the Welcome Window. A green update indicator will be shown in the bottom right corner of the window.

Resolved: In-app account registration does not work

In-app registration via the Canopy welcome screen fails with a “403: forbidden” error. This has been corrected and registration should now work correctly. The workaround for previous versions is to register for a user account directly at https://www.enthought.com/accounts/register/ and then log in via the Canopy welcome screen.

Resolved: Clicking ‘Subscribe’ in Package Manager results in a ‘404’ Error

The Canopy Package Manager supports in-app purchases of subscriptions to the package repository. This is done by displaying the Enthought.com purchase web page in the application. After some updates to the website, the purchase URL was not correctly updated and resulted in a “page not found” (404) error. The URL has been corrected and the purchase page displays correctly now.




Release notes for Canopy 1.0.1 (23 May 2013)

Resolved: Command line utilities installed via Package Manager use wrong executable

In the previous release, packages such as Pip that install command line utilities were installed using the wrong Python executable when installed via Package Manager. Instead of using Python from the ‘User’ virtual environment, the Pythone executable from the ‘System’ virtual environment was selected. This resulted in Python packages potentially being installed in the wrong environment or Python not finding an installed package.

This release corrects the issue and automatically fixes any incorrectly installed packages.

Experimental: Added proxy support for updates, Package Manager

Canopy now has very basic, experimental support for connecting through proxy firewalls. This functionality is still being tested and is being made available for users who require it and wish to help test it and provide feedback.

The proxy support enables the Package Manager, Canopy software update fuctionality, and Documentation Brower to make HTTP and HTTPS connections when connecting through some common proxy server configurations. The proxy functionality can be configured in one of two ways: by editing the Canopy preferences.ini file or by setting an environment variable.

To edit the preferences.ini file, follow the following steps:

Exit Canopy. This is important because Canopy overwrites the preference.ini file on exit.

Now using a standard text editor, open preferences.ini (see See Where are the preference and log files located? for the location of the preference.ini file on each OS) and add the following lines:

[main]
proxy_server = *server_name*
proxy_port = *port_number*
proxy_username = *username*
proxy_password = *password*

The values proxy_server and proxy_port must be set to the name of the server and the port number to connect to. The proxy_username and proxy_password settings are optional and only need to be provided if your proxy server requires authentication.

Important: If you set proxy_password you will be storing your password in plain text which is insecure. In some environments this password is regularly set in environment variables and is considered insecure already so this is not an issue. If the password is expected to be secure it should not be set here. Future Canopy versions will correctly store this password securely.

Once these changes have been made, save the file and restart Canopy. When the Package Manager is opened it should now be able to correctly download the index of packages and install new packages.

As an example, a typical configuration looks something like this:

[main]
proxy_server = proxy.myorg.com
proxy_port = 8080
proxy_username = proxyuser
proxy_password = passwd



Release notes for Canopy 1.0.0 (9 April 2013)

New: Linux Beta Support

Canopy is now supported on Linux as well as Microsoft Windows and Apple Mac OS. Canopy is supported on Ubuntu 12.04 and RedHat Enterprise 5 and 6 though should work on most Linux distributions.

The Linux version of Canopy is still in beta but contains all of the functionality of the Windows and Mac OS versions.

Notice: Accessing full library of Canopy Python packages

The Canopy installers include the core SciPy software stack and other packages listed in the Canopy Express version. When Canopy is installed all of these packages are installed in the user Python environment.

Subscribers have access to the full Canopy Python repository via the Canopy Package Manager. Additional packages can be installed individually as needed or users can install all available packages. To install all packages, click the button labeled “Install All Canopy Packages” found in the lower-right corner of the Package Manager window. This option is available to Canopy (EPD) subscribers.

../_images/add-all-pkgs-btn.png

Issue: No proxy firewall support

Canopy does not currently support proxy firewalls. Please see How do I use Canopy when behind a proxy firewall? for more information.

Issue: Canopy is an ‘unidentified application’ on Mac OS 10.8 (Mountain Lion)

In Mac OS 10.8 Mountain Lion, Apple introduced a feature called “Gatekeeper” that restricts unidentified applications from installing and running. The Canopy application has not yet been been added to the Gatekeeper identification system.

As a result you may see a message like this if you attempt to start the Canopy application:

../_images/release-notes-open-err-1.png

To open Canopy the first time, you need to Control-click the Canopy application icon to bring up a context menu, and select “Open”. You will then see a dialog which has a message:

../_images/release-notes-open-err-2.png

Click “Open” and Canopy will start.

You only need to do this once. After this you will be able to start Canopy application normally by double-clicking its icon.

Issue: ‘Use Canopy as my default Python’ does not override Windows system settings

When Canopy is run for the first time, it setups up your Python environment and offers to make Canopy the default Python environment. It does this by pre-pending the location of Canopy’s Python interpreter to the front of the PATH environment variable. In most cases this has the desired behavior and makes Canopy the default for the Windows Command Prompt and other terminals.

This method does not work if another application with Python has been installed on the system by an administrator and the path to that application has been added to the system PATH setting. Windows first uses the system’s PATH setting and then the user’s PATH, so the other application will be found first.

The workaround is to manually adjust the system PATH setting if possible. Alternately, PATH must be set once the Windows Command Prompt has been started.