Using non-EPD package installers such as pip

(Updated January 30, 2015)

This article is about EPD (2012 and earlier), not Canopy (2013 and later). For related Canopy information, see Canopy-specific information about installing external packages.

Caution: Do not install setuptools in EPD. EPD includes distribute 0.6.26, which simulates setuptools 0.6. If you install setuptools, then you will corrupt distribute and have problems. If you need to install a package which requires a version of setuptools greater than 0.6, please email us at support@enthought.com, explaining your needs and we will provide a  solution if feasible. We will build a new version of distribute which provides the necessary functionality.

EPD is a very standard python distribution, and it is perfectly fine to replace individual packages using any standard installation method. The most common case is for users who wish to be on the bleeding edge of a package's development, running a package from its development source branch. However it is also fine to use standard installation methods to install a newer version of a package than is in the EPD repository (e.g. `pip install some_package`).

The best practice, when you wish to install an EPD package from another source, is first to uninstall it (`enpkg --remove some_package`), then to install it using whatever technique you prefer.

When it's time to revert to the EPD version, then you would uninstall it using the same technique that you installed it with, then re-install it with enpkg.

Note that pip was not shipped by default with EPD (although it is with Canopy); you can install it from our repository with [sudo] `enpkg pip`. Depending on your system configuration, invoking pip without first installing it into EPD could result in running pip from another python installation, would, by default, install the package into that other python rather than into EPD.

Note also that enpkg will not be aware of packages that you installed using external installers. It is up to you to coordinate this independently.

Have more questions? Submit a request

Comments

  • Avatar
    Matthew O'Connell

    I needed to specify the enthought path as a parameter in order for pip install to work.

    See: http://stackoverflow.com/a/14417611/1583083 

  • Avatar
    Jonathan March

    Matthew, it sounds as if you are using a non-EPD pip. Adding a clarification in article. You can confirm by typing "which pip"

  • Avatar
    Matthew O'Connell

    'which pip' gives

    /Library/Frameworks/EPD64.framework/Versions/Current/bin/pip

    I had pip installed before I installed EPD though - I only tried installing pip through enpkg a little earlier on - so maybe this is where the problems stem from... 

    Anyway, all good now. FYI, I was installing pymongo via pip as the version in the EPD repo seems quite old (v2.1 vs v2.4 current). 

  • Avatar
    Jonathan March

    Thanks for your response; interesting. Yes, we are creating a new, more flexible and consistent build & deployment system; when it is done, we will use it to catch up and keep up on package versions.

  • Avatar
    Nikhil Muralidhar

    Hey Johathan, I'm running EPD on ubuntu with an academic license. I am trying to install the python 'requests' package into my EPD distribution. First thing I would like to ask you is what directory new packages are installed into in the Linux version of EPD distrubition as I only see examples for MAC OS EPD online and also on this thread. Also I tried the epkg pip command and it says No subscription for 'pip' , any idea how I can get around this?

  • Avatar
    Jeffrey van Geete

    I am having a great deal of trouble getting pip uninstall some_package to uninstall modules like numpy, pandas, or scipy, which were install with Canopy.  I used enpkg --remove numpy, and then the version listed by pip list changed from 1.7 to 1.8 (?).  However, now the same problem persists - pip will not uninstall or --upgrade (says it can't ''roll back'' numpy and several parts of the pip.log suggest installing Visual Studio, which I have already done.