Category Archives: Enthought Python Distribution

For all you EPD Users: Canopy v1.1

EPD (Enthought Python Distribution) provided a simple install of Python for scientific computing on the major platforms: Windows, Linux and Mac-OS. Those looking for a clean, straightforward Python stack to unpack into a particular directory found EPD to be pretty ideal.

With the introduction of Enthought Canopy, we began addressing users who are more engineer or scientist than programmer and were much less familiar with command-line interfaces. The Canopy desktop (in the vein of MATLAB or Spyder) aims at these technical users who want to use Python, but more as an application or IDE. To implement the desktop in Python and to allow both it and a user-defined Python environment to co-exist and be separately updated, we used virtual environments. As a consequence Canopy can feel a bit foreign to EPD users. With 1.1 we have added a new command line interface (CLI) that will hopefully make EPD users feel more at home in Canopy while retaining many of the Canopy advantages such as in-place update and virtual environment support.

Now, EPD users who just want to use Canopy as a plain Python environment with their own tools or IDE can easily create one or more Python environments. For example, from the command line on Windows:

        Canopy_cli.exe setup C:\Python27

or on Linux:

        canopy_cli setup ~/canopy

The target directory can be any you choose. If you want to make this Python environment the default on your system, you can specify the –default switch, and Canopy will add the appropriate bin directory (Scripts directory on Windows) to your PATH environment variable. On Mac OS and Linux systems, Canopy does this by appending a line to your ~/.bash_profile file which activates the correct virtual environment. On Windows, this Python environment is also added to the system registry so third-party tools can correctly find it.

Since we use virtual environments, the installation layout for Canopy is different. With Canopy we install what is referred to as “Canopy Core”: the core Python environment and a minimum set of packages needed to bootstrap Canopy itself. With it we can lock down the Canopy environment, facilitate the automatic update mechanism, and provide reliable startup and fail-safe recovery. For the user, there is a different environment. This means when a Python update comes out, it is no longer necessary to install a whole new environment plus all of your packages and get everything working again. Instead, simply update Canopy and go back to working — all of your packages are still installed but Python has been upgraded.

To complete an install, Canopy creates two virtual environments named ‘System’ and ‘User’. System is where the Canopy GUI runs; no user code runs in this environment. Updates to this virtual environment are done via the Canopy update mechanisms. The User environment is where the kernel and all user code runs. This virtual environment is managed by Package Manager from the desktop or by enpkg from the command line; any packages can be updated and installed without fear of disrupting the GUI. Similarly, updates to the Canopy GUI will not affect packages installed in the User environment and break your code.

So why stick with virtual environments for an “EPD-like” install? One of the big challenges with the old, “flat” EPD installation method was updating an install, or trying out different package configurations. With virtual environments, you can create a new environment which inherits packages from another virtual environment, and try out a few package changes. When you are satisfied, it’s straightforward to throw away the experimentation area and make the changes to the original, stable virtual environment.

For more details, check out Creating an EPD-like Python environment in our online docs. And you can download Canopy v1.1 now.

“Why We Built Enthought Canopy, An Inside Look” Recorded Webinar

We posted a recording of a 30 minute webinar that we did on the 20th that covers what Canopy is and why we developed it. There’s a few minutes of Brett Murphy(Product Manager at Enthought) discussing the “why” with some slides, and then Jason McCampbell (Development Manager for Canopy) gets into the interesting part with a 15+ minute demo of some of the key capabilities and workflows in Canopy. If you would like to watch the recorded webinar, you can find it here (the different formats will play directly in different browsers so check them and you won’t have to download the whole recording first):

Summed up in one line: Canopy provides the minimal set of tools for non-programmers to access, analyze and visualize data in an open-source Python environment.

The challenge in the past for scientists, engineers and analysts who wanted to use Python had been pulling together a working, integrated Python environment for scientific computing. Finding compatible versions of the dozens of Python packages, compiling them and integrating it all was very time consuming. That’s why we released the Enthought Python Distribution (EPD) many years back. It provided a single install of all the major packages you needed to do scientific and analytic computing with Python.

But the primary interface for a user of EPD was the command line. For a scientist or analyst used to an environment like MATLAB or one of the R IDEs, the command line is a little unapproachable and makes Python challenging to adopt. This is why we developed Canopy.

Enthought Canopy is both a Python distribution (like EPD) and an analysis environment. The analysis environment includes an integrated editor and IPython prompt to faciliate script development & testing and data analysis & plotting. The graphical package manager becomes the main interface to the Python ecosystem with its package search, install and update capabilities. And the documentation browser makes online documentation for Canopy, Python and the popular Python packages available on the desktop.

Check out the Canopy demo in the recorded webinar (link above). We hope it’s helpful.

Welcome EdX students!

Welcome to EPDFree EdX students! We are honored to partner with EdX to offer up a Python environment you can use for your studies. For those of you who don’t know, “EdX is a not-for-profit enterprise of its founding partners Harvard University and the Massachusetts Institute of Technology that features learning designed specifically for interactive study via the web.”

We’ve always had a strong relationship with the academic community and are excited about accelerating the speed of science with our tools and consulting work. It’s exciting to know we will be a part of this ambitious initiative to train the next generation of scientists around the world. Good luck on those problem sets!

DataGotham…Complete!

Well, DataGotham is over. The conference featured a wide cross section of the data community in NYC. Talks spanned topics from “urban science” to “finding racism on FourSquare” to “creating an API for spaces.” Don’t worry, the videos will be online soon so you can investigate yourself. The organizers did a great job putting a conference of this size together on relatively short notice. Bravo NYC data crunchers!

One thing I somehow missed was a network graph created by the organizers to illustrate the tools used by attendees. I am happy to see python leading the way! The thickness of the edge indicates the number of people using both tools. It seems there are a lot of people trying to make Python and R “two great tastes that go great together.” I’m curious as to why more Python users aren’t using numpy and scipy. Food for thought…

Got tools?

Just released! EPD 7.3 plus beta version of EPD 8.0

Today we have for you not just one, but two exciting EPD releasesan update of EPD to 7.3 and a beta release previewing new features coming in EPD 8.0.

The EPD 7.3 update adds several new packages including Shapely, openpyxl, and a new package from Enthought named Enaml.  Enaml is a new package for rapidly building UIs using a very “Pythonic” declarative language heavily inspired by Qt’s QML langage.

EPD 7.3 also includes a host of package updates, including adding OpeNDAP support to the NetCDF4 package. Overall over 30 packages have been updated, including Cython, IPython, pandas, basemap, scikit-learn, Twisted and SQLAlchemy.

EPD 8.0 beta takes all that we know and love in EPD 7.x and adds an all-new graphical development and analysis environment.  The new GUI is focused on providing a fast, lightweight interface designed for scientists and engineers.  Some of the key features are:

  • A Python-centric text editor including tab-completion plus on-the-fly code analysis.
  • An interactive Python (IPython) prompt integrated with the code editor to enable rapid prototyping and exploration.
  • A Python package manager to make is easier to discover, install, and update packages in the Enthought Python Distribution.
  • Integrated documentation, both on the GUI itself and standard online documentation.

Which version should you install?  EPD 7.3 is the current production release and has the most testing behind it.  If you want to try out EPD 8.0 beta we would love to hear what you think.  EPD 8 is designed to work with earlier versions so once you install the GUI you can either setup a new EPD environment or tell it to use your existing one.  And don’t worry, it’s safe — it won’t modify your existing EPD.

As always, if you have an existing EPD 7.x install that you want to keep you can update all of the Python packages to EPD 7.3 by running the command “enpkg epd” from the command line.  Or, if you have installed the EPD 8 GUI, just open the package manager, select the ‘EPD’ package and click ‘Install’.  It will update you EPD 7.x environment for you.

EPD 8 can be downloaded from https://beta.enthought.com/EPD_8/download/.

Any comments, questions, complaints, or compliments on the beta release can be sent to beta-feedback@enthought.com.

EPD 7.2 released

EPD 7.2I am pleased to announce the release of Enthought Python Distribution, EPD version 7.2, along with its “EPD Free” counterpart. The highlights of this release are: the addition of GDAL and updates to over 30 packages, including SciPy, matplotlib and IPython. The new IPython 0.12 includes the HTML notebook, which is why the Tornado web-server was also added to EPD.

Experimental PySide support in ETS

Over the last couple of weeks I added support for PySide to the majority of the ETS packages, including Traits, Chaco and Enable. I have only tested personally with Ubuntu 10.10 and PySide Beta 1, but we’re beginning to test with OS X (Windows is next). With any luck, the next ETS release will have full PySide support, and the next EPD release will include PySide eggs.

Right now, to use PySide in ETS, you have to set an environment variable QT_API=pyside. I hope by the time ETS 3.6 is released we can ditch the environment variable, but I can’t make any promises.

EPD 6.1: MKL on Linux, Windows, & OSX

epd-6-1-long
There were several reasons we initially decided to include MKL, an extensively threaded, highly optimized library, in the Enthought Python Distribution. For one thing, we like that MKL detects the processing capability of the machine and then runs optimal algorithm for that hardware. Secondly, we knew that MKL would offer faster linear algebra routines than the ATLAS framework, previously used for EPD Linux and Windows, and Accelerate library, previously used for OSX.

We didn’t anticipate, however, just how dramatic that speed up would be. Our benchmarking tests document the astounding increases in processing speed that MKL lends to EPD.

In EPD 6.1, NumPy and SciPy are dynamically linked against the MKL linear algebra routines. This allows EPD users to seamlessly benefit from the highly optimized BLAS and LAPACK routines in the MKL. In addition, EPD 6.1 comes bundled with all of the MKL run-time libraries so that advanced users can take advantage (with ctypes) of even more of the MKL library such as fast Fourier transforms, trust-region optimization methods, sparse solvers, and vector math.

We’re really pleased with the optimizations MKL offers to our EPD users. Try out EPD 6.1 for yourself!