This section lists major new features, fixes, and uncorrected issues known at release time. Where possible, we suggest workarounds.
Summary of release notes
- Canopy Release Notes
- Package updates
- Release notes for Canopy 1.7.4 (21 July 2016)
- Improved: Integration with third party applications (#2751)
- New: Trial and demo information shown on Welcome Screen (#2724)
- Improved: User feedback and bug reporting (#2753, #2740)
- Improved: Add support for Canopy Terminal in Lubuntu (#2757)
- Improved: Login diagnostics in network access tests (#2634, #2791, #2792)
- Fixed: Error opening file from Welcome Screen’s Recent Files (#2710, #2676)
- Fixed: Exception in the code editor (#2716, #2738)
- Fixed: Package manager (#2735, #2754, #2701)
- Release notes for Canopy 1.7.3 (15 June 2016)
- Fixed: Registry and sys.path issue on Windows (#2447)
- Fixed: Recent Files list in the Editor window (#2482)
- Fixed: Non-admin use of Package Manager in read-only environment (#2484)
- Fixed: Error when adding Debugger breakpoint from context menu (#2559)
- Fixed: Disconnected licensed user can’t access Data Import Tool examples (#2562)
- Fixed: Debugger breakpoints on non-code lines (#2563)
- Fixed: PYTHONPATH registry value when Canopy set as default Python (#2568)
- Fixed: Wrong file permissions on eggs in LOCAL-REPO and EXTRA-REPO on OSX (#2602)
- Fixed: Command line –help option redirected (#2627)
- Fixed: TCL/Tk symlinks broken on Linux (#2661)
- Known Issue: wxPython/glib conflict on some Linux distributions
- Release notes for Canopy 1.7.2 (6 May 2016)
- Release notes for Canopy 1.7.1 (28 April 2016)
- Release notes for Canopy 1.7.0 (18 April 2016)
- New: Connect Canopy’s Python Pane to external IPython kernels (#3997)
- New: Package Manager v2
- New: Data Import Tool (subscriber benefit)
- Updated: Python to version 2.7.11 (#3946)
- Updated: IPython in Canopy’s Editor to 4.1.2
- Improved: Application updates now downloaded only when requested (#3961)
- Improved: User account creation (#3157)
- Fixed: Welcome Screen layout (#3998, #4017)
- New: Auto-debugging (#4062)
- New: File Browser rename/move commands (#4052)
- Improved: File Browser’s filter now defaults to All Files (*.*) (#3989)
- New: Option to disable Python Pane calltips (#920)
- New: Option to suppress check for Jupyter on startup (#4029)
- Improved: Added notification that User venv is not updated with GUI update (#1328)
- Fixed: Disable USER_SITE on startup (#4027)
- Improved: Console output now redirected to stdout.log or stderr.log
- Improved: Command prompt windows no longer flash open when starting Canopy (#4080)
- Fixed: Dev versions of some packages were being installed. (#4003)
- Fixed: Linux - Expected failures in urllib2 in Detailed Network Access Tests (#3919)
- Fixed: Other
- Release notes for Canopy 1.6.2 (13 January 2016)
- Known issue: In-application updates still mostly disabled (#3961)
activate_canopyalias on Mac and Linux (#3960)
- Improved: beta version of Package Manager v2
- Improved: Disable update checks on new common installs, by default (#3939)
- Updated: New packages added to standard installers (#3973, #3969, #3968)
- Fixed: Matplotlib 1.5.0 GUI backend issues (#3942)
- Fixed: Opening files or Jupyter notebooks on Windows network shares (#3937, #3938)
- Fixed: Cascading loop of error reporting windows (#3943)
- Fixed: AVG was flagging some Canopy installers (#3940)
- Fixed: Debugger License recognition under Open Common Install (#3846)
- Release notes for Canopy 1.6.1 (25 November 2015)
- Updated: Python to version 2.7.10 (#3799)
- New & Fixed: Jupyter (IPython) notebooks open in a standard browser (#3801 etc)
- Fixed: Errors in proxy settings in preferences dialog (#3746 etc)
- Improved for some users: Windows and Mac System Proxy Settings (#3878)
- New: Optional beta version of Package Manager v2 (#3338)
- Known Issue: Original Package Manager sometimes needs a Canopy restart (#3900)
- Improved: Managed Common Install setup (#3767, 3820, 3785, 3898)
- Fixed & Improved: Qt/Pyside is now the default GUI backend in terminal and notebook (#3723)
- Fixed: Unable to use GUI backends other than PySide (#3821)
- Fixed: Inconsistent treatment of debugger and repository licenses (#3846)
- Fixed: Debugger License recognition under Common Install (#3846)
- Fixed: Segmentation fault on startup on Ubuntu 14.04 (#3797)
- Fixed: Symantec was flagging some Canopy installers (#3895)
- Partially fixed: Corrupted configuration files can prevent Canopy startup (#3873, 3879)
- Fixed: Other
- API change: MKL extension functions (#3877)
- Release notes for Canopy 1.6.0 (24 August 2015)
- New: “Managed Common Install” for institutional multi-user setup (#3747)
- New: Canopy_cli and Windows installer options (#3518)
- Fixed: Network service errors (#3748)
- Fixed: ValueError in Editor (#3294)
- Fixed: EOFError in bootstrap (#3738)
- Known Issue: IPython Notebook server error when working behind proxy (#3729)
- Release notes for Canopy 1.5.5 (3 July 2015)
- Release notes for Canopy 1.5.4 (12 June 2015)
- Release notes for Canopy 1.5.3 (10 June 2015)
- Updated: Python to version 2.7.9 (#3234)
- Updated: IPython versions (#3457)
- Resolved: Restart required before Package Manager respects login (#3137)
- Improved: Proxy support and testing (#3214)
- Improved: Internal networking code refactored (#3534)
- Resolved: Setuptools replaces distribute (#3548)
- Resolved: ETS toolkit defaults to Qt in Canopy Command Prompt or Terminal (#1114)
- Resolved: Fail to build Sphinx documentation that uses pydoc (#3490)
- Improved: System-wide Installation (common install) configuration (#2779)
- Issue: On non-RHEL Linux, urllib2 can not connect to https sites (#3612)
- Resolved: Bug reporter fails if there is Unicode in the log (#3679)
- Resolved: in Canopy 1.5.2, incorrect virtual environment inheritance (#3681)
- Other improvements
- Release notes for Canopy 1.5.2 (30 January 2015)
- Resolved: Crashes when waking from sleep on OSX (#1199)
- Resolved: SSL cerificate verification failures (#3263)
- Resolved: Repeated inappropriate application update downloads (#3299)
- Resolved: Windows: Error when creating Canopy Command Prompt shortcut (#3362)
- Resolved: Welcome screen logout blocked (#3425)
- New: Advanced networking connectivity test (#3343)
- New: huge installer for disconnected and some institutional users (#3318)
- Release notes for Canopy 1.5.1 (24 November 2014)
- Resolved: Not clear that subscribers must log in to use debugger (#3169, #3187)
- Resolved: Issue fetching or using debugger license (#3177, #3178)
- Resolved: Migration errror (#3176)
- Resolved: IPython Notebook fails loading content (#3181)
- Resolved: Update failure with corrupted preferences file (#3183)
- Resolved: Unicode errors on non-ascii pathnames (#3180)
- Resolved: Missing item on Python pane directory drop-down menu (#3190)
- Release notes for Canopy 1.5.0 (19 November 2014)
- New: Python Debugger (Beta)
- New: Run Configuration (#353)
- New: Canopy Update notice in Package Manager (#1586)
- New: IPython pane scrollback length (#1386)
- Updated: IPython used within Canopy GUI updated to version 2.3 (#2964)
- Updated: Package Manager improvements
- Issue: Linux: Default editor font is not fixed-width on CentOS (#2822)
- Resolved: Highlight active pane in the Editor (#1750)
- Resolved: Improved login credentials management (#1482, #1482)
- Resolved: Font preference changes required restart (#2418)
- Resolved: Qt SVG plugin fixed (#1974)
- Resolved: Autoscroll the Python pane (#1071, #2537)
- Resolved: Drag and Drop of files to editor (#2201)
- Resolved: Protect proxy environment values in subprocesses (#2978)
- Resolved: Keep IPython CWD synced to editor (#3021, #3041)
- Resolved: Automatic update preference setting ignored (#2453)
- Resolved: Linux: Canopy can hang when Preferences Dialog opened when Canopy run as background process (#1933)
- Resolved: Some error dialogs displayed even when “–no-gui-setup” is specified (#2098)
- Resolved: Misleading error when incorrect credentials used during Welcome Screen login (#1633)
- Resolved: Password reset failed in Welcome Screen (#2922)
- Resolved: Windows: PTVS Intellisense shows too many packages when used with Canopy (#2947)
- And many more...
- Release notes for Canopy 1.4.1 (11 June 2014)
- New: Support for multiple virtual environments in Python Tools for Visual Studio (#1819)
- Resolved: Better handling of plugin and addon failures (#1543, #1581, #2110, #2135)
- Resolved: Python executable framework build on OSX (#2082)
- Resolved: Better handling of migration script errors (#1224)
- Resolved: (Windows) “Process cannot access file because it is being used by another process” (#1776, #1952)
- Resolved: Display standard output from C code (#1959)
- Resolved: (Windows) Window appears in upper, left coner of screen, partially off screen
- Resolved: Level 1 updates (#2132)
- Resolved: Undo goes too far back (#858)
- New: Add Find feature for IPython Notebooks (#1851)
- New: Restart in recovery mode (#1536)
- Resolved: Better font sizes in documentation browser (#2242)
- Resolved: Loading files with incorrect encoding (#1653)
- New: Canopy preferences path (#2243)
- Release notes for Canopy 1.4.0 (21 April 2014)
- New: Canopy Command Prompt or Terminal (#1022)
- New: Package Manager Updates (#1491, 1492)
- New: Copy Package Manager history to clipboard (#1367)
- New: Open IPython Notebooks with Canopy (#948)
- New: Proxy environment variables (#1319, 1045)
- New: Knowledge base access (#1350)
- New: Enpkg installed in new virtual environments (venvs) (#1200)
- Resolved: Unclear how to exit IPython help when viewing multiple pages (#303)
- Resolved: Use .py extension by default (#303)
- Resolved: (OS X) IPython notebook tool icons (#1047)
- Resolved: Multiple file selection through bug-reporter file dialog (#654)
- Resolved: Syntax highlighter in the Python pane (#1567)
- Resolved: Windows: Window is located off-screen, can’t be moved (#84)
- Resolved: (Windows) Automatic directory changes on network shares (#1162)
- New: Copy file paths to clipboard (#1007)
- Resolved: Mac OSX: Shortcut keys in IPython Notebook (#955)
- Resolved: Windows (64-bit): Package installation fails with “invalid command ‘egg_inst’” or similar (#1760)
- Resolved: Incorrect build flags in distutils and python-config (#1585)
- Resolved: Robustness and stability improvements
- Release notes for Canopy 1.3.1 (21 April 2014)
- Release notes for Canopy 1.3.0 (31 January 2014)
- Updated: Python to version 2.7.6
- Resolved: Python Tools for Visual Studio is unable to find symbols for python27.dll
- Resolved: Canopy won’t let me update some packages in Package Manager
- Resolved: Incorrect font used for Canopy GUI on Mac OSX “Mavericks”
- Resolved: Avoid hang-at-exit problem on OSX
- Updated: Qt and PySide
- Issue: Use of enpkg in virtual environments created by user requires workaround
- Release notes for Canopy 1.2.0 (20 December 2013)
- New: Windows: Python Tools for Visual Studio (PTVS) integration
- Resolved: Mac OS “Mavericks” support
- New: pip installed in User virtual environment by default
- New: PySide & Qt developer tools included
- Note: Windows: “This installation package is not supported by your processor type”
- Resolved: “Unexpected error:ParseError:Invalid line at line “1”
- Resolved: Canopy fails to start if environment variable HTTP_PROXY is set to invalid value
- Resolved: Linux, Mac OS: ‘canopy_cli venv’ creates scripts in bin directory with incorrect Python path
- Resolved: Windows: –no-gui-setup does not work on headless servers
- Resolved: Windows: canopy_cli is not a valid win32 app
- Resolved: Windows: Python ‘PythonPath’ now set in Windows registry
- Resolved: MacOS: Open relative paths from the command line does not work
- Resolved: Linux: Warning: Unable to load library ‘icu18n’
- Release notes for Canopy 1.1.1 (3 October 2013)
- New: Updated to IPython 1.1
- Issue: Canopy crashes occasionally during tab completion
- Issue partially resolved: Linux, Mac OS: ‘canopy_cli venv’ creates scripts in bin directory with incorrect Python path
- Issue: ‘Canopy_cli.exe –no-gui-setup’ fails on Windows
- Resolved: Linux: Canopy fails to start on some X servers, VNC servers
- Resolved: Lock files, remaining after crash, block restart
- Issue: Canopy reports stray Python processes running, fails with Unicode decode error
- Resolved: Check for updates appears to hang or take many minutes
- Issue/Resolved: IPython Notebook cannot open local file when proxy set
- Release notes for Canopy 1.1 (22 August 2013)
- New: All-new command line interface (CLI)
- New: Full installers available to subscribers
- New: Support for non-GUI installs
- New: Full production version on Linux
- Security: Documentation Browser could execute arbitrary Python code
- Resolved: Package manager can not be interrupted during download, install
- New: System-level default preferences
- Resolved: Canopy fails to set up environment when first run
- Resolved: Linux: Canopy crashes when update was available and ‘Install on Quit’ is clicked
- Resolved: Windows: File opened from the command line now shown with the correct case
- Resolved: Windows: MSI version reported as ‘0.9.1’
- New: Canopy venv implementation support arbitrarily deep nesting of virtual environments
- Release notes for Canopy 1.0.5 (22 August 2013)
- Release notes for Canopy 1.0.4 (1 August 2013)
- Release notes for Canopy 1.0.3 (27 June 2013)
- New: Proxy firewall support
- Resolved: Windows: Third-party installers & tools unable to find Canopy install
- Resolved: Linux Canopy installation files have User and Group ID set to “506”
- Resolved: Canopy update appears to hang at 100%
- New: clear recent files list
- New: top-level directories added to navigation pane persist outside of sessions
- Resolved: Mac OS: Add libpython2.7.dylib in layers to make it easier for extensions to link Python
- Resolved: Tcl / Tkinter is missing or does not function correctly
- Resolved: Canopy setup fails when %HOME% is set to invalid directory
- New: preference for disabling automatic update checking
- Resolved: Running an unsaved file with unicode content fails
- Resolved: OSError: Could not find C library or load any of its variants
- Resolved: Linux: libjpeg62 missing
- Resolved: Windows: SSL/TLS libraries missing for Qt
- New: Option to remove end-of-line white space from files
- Release notes for Canopy 1.0.2 (27 June 2013)
- Release notes for Canopy 1.0.1 (23 May 2013)
- Release notes for Canopy 1.0.0 (9 April 2013)
When each new version of Canopy is released, the new Canopy installers are updated to bundle the most recent versions of the packages in the Enthought package repository. However to avoid disrupting your working package set, these bundled packages will not be updated in your existing User Python environment, even if you uninstall and reinstall Canopy. Rather, packages can be updated as usual in the Package Manager or with the enpkg command-line utility. If, instead, you wish to install the new bundled package set, you must explicitly reset (delete) your User Python environment. For more information see “Uninstalling and resetting Canopy” in the Enthought Support Knowledge Base.
Canopy now provides additional features allowing integration with third-party applications.
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.
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.
Canopy Terminal can now be used in Lubuntu and other Linux platforms using LXTerminal.
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.
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.
An exception related to code_warnings or tooltips was occasionally triggered when editing code. This has been fixed.
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
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.
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.
The Data Import Tool has been updated to check for license state before checking whether the user is logged in.
The Canopy Debugger has been updated to prevent setting apparent breakpoints on blank or commented lines, because such apparent breakpoints do not actually work.
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.
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.
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.
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 the this knowledge base article.
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.
(A new issue numbering system is now in use starting with this release.)
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.
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”.
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 (v2)”.
Package Manager v1 has been deprecated, but is still available, temporarily, in the Canopy Tools menu.
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”.
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.
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
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.
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.
Some visual issues with the layout and organization of the Welcome screen have been fixed.
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”.
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.
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.
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.
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.
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”.
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
could interfere with Canopy’s execution. If you have a special requirement to
enable this setting, you can edit your site.py file manually.
If Canopy is started from the command line, output to the console is now logged into stdout.log or stderr.log, removing console noise.
On Windows, Command prompt windows would rapidly open and close when checking if Jupyter was installed. This has been fixed.
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.)
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.
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.
This release is primarily a bug-fix release, with several new convenience features.
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.
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
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.
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.
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.
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.
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).
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 firstname.lastname@example.org, if necessary) if the bug reporter fails for you, in this or any other way.
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.
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. This is discussed in the Knowledge Base article “Canopy Common Install Options”.
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.
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
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.
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.
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.
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
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.
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.
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
QT_API environment variables, or by
--pylab startup options,
or the equivalent magic commands or Jupyter or matplotlib configuration file
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.
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.
A licensed user might be recognized in one Canopy window but not in another. This has been fixed.
Users who are online but not logged on will now have their shared licenses honored.
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.
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.
If the user’s
.enstaller4rc files became corrupted, this
could prevent Canopy from starting. This has been fixed in most cases.
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
Our build of MKL has long included several added utility functions
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.
Canopy 1.6.0 is a limited distribution release, focused on providing improved common install options to institutional users.
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.
The Canopy command line tool (
Canopy_cli) now has a
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.
A problem causing network service errors when trying to run
canopy_cli update has been fixed.
In some situations using tab-complete in the code editor could result in a ValueError exception. This has been fixed.
If a particular file in the preferences folder was corrupted, then the Canopy application could produce an EOFError during startup. This has been fixed.
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.
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.
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.
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.
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.
This release focuses on bug fixes, stability, and laying a foundation for future features and a quicker release cycle.
The Python included with Canopy has been updated from version 2.7.6 to version 2.7.9.
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.
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.
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.
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.
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.
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.
Building sphinx documentation which uses pydoc, could fail with this error:
"AttributeError: 'module' object has no attribute 'getdoc'
This has been fixed.
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”.
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.
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.
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.
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.
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.
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.
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.
For users of legacy non-webservice repositories, the Welcome screen did not permit logging out. This has been fixed.
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.
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.
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.
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.
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.
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.
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.
Added better handling of Python executable paths which might contain non-ascii characters.
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.
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.
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..
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.
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).
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.
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.
The active pane in the code editor window is now highlighted to help the user keep track of the keyboard focus.
User logins are now better synchronized between the Canopy Welcome window, Canopy Package Manager, and command-line enstaller/enpkg.
Changes to the editor font preferences on Windows now take effect immediately instead of requiring a restart.
Changes have been made that fix the runtime finding and loading of the Qt SVG plugin image handler, as well as other Qt plugins.
Canopy is now smarter about keeping the final lines of the Python pane visible when there is output, or when input is needed.
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.
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.
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.
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.
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.
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.
The “Forgot your password” feature in the Canopy Welcome screen login page gave a “Connection Error”. This has been corrected.
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.
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, canopy_cli register / unregister.
Only show plugin load failure warnings once instead of each time Canopy starts, and do better cleanup of plugins that have been removed.
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.
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.
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.
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.
A problem that was preventing Level 1 updates (simpler, egg-only updates) from working was fixed.
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.
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.
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.
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.
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.
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.
|Linux & Mac OS||~/.canopy|
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.
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.
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.
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.
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.
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.
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.
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.
Canopy will now default to using the .py filename extension when saving new files.
The toolbar icons used in the IPython Notebook, which were broken on OS X, have been fixed.
Selecting and attaching multiple files is now possible through the file dialog of the bug reporter.
A bug that caused incorrect context-sensitive syntax highlighting in the Python pane has been fixed.
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.
A context menu action in the file browser pane now allows a file’s path to be copied to the clipboard.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 command can be found in the User\Scripts directory on Windows or User/bin on Linux
and Mac OS.
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 User Python Environment? 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.
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.
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.
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:
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.
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.
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.
When Canopy is set as the default Python environment on Windows it sets the following standard Python registry keys:
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’.
From the Mac OS command line, files can be opened directly in the Canopy editor via the ‘canopy’ command like this:
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.
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.
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.
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.
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 email@example.com.
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 firstname.lastname@example.org.
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.
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.
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.
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.
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.
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|
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.
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.
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.
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 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.
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|
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.
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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’.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
Canopy does not currently support proxy firewalls. Please see How do I use Canopy when behind a proxy firewall? for more information.
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:
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:
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.
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.