We have added support for new Linux machine types to conda, namely armv7l (used by the new Raspberry Pi 2 and other ARM boards), and ppc64le (POWER8 LE used by IBM Power Systems and OpenPOWER servers) machine types. You can now use conda on these machines to install any of our prepackaged binaries, but you can also use conda-build to create your own, and upload them to anaconda.org. This blog post will show you how.

We have added support for new Linux machine types to conda, namely armv7l (used by the new Raspberry Pi 2 and other ARM boards), and ppc64le (POWER8 LE used by IBM Power Systems and OpenPOWER servers) machine types. You can now use conda on these machines to install any of our prepackaged binaries, but you can also use conda-build to create your own, and upload them to anaconda.org. This blog post will show you how.

The systems we used to compile the binaries are the following:

armv7l (32-bit):

  • Hardware: Raspberry Pi 2
  • OS: Raspbian 7 wheezy (GNU/Linux 3.18.14-v7+)
  • CPU: ARMv7 Processor rev 5

ppc64le (64-bit):

  • Hardware: IBM Power System S822L (thanks to our friends at Lab7 Systems)
  • OS: Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-57-generic ppc64le)
  • CPU: POWER8E (raw), altivec supported (little-endian mode)

Newer versions of the Linux operating system (slightly different flavors) should also be compatible with the binaries we created. We created Miniconda installers for both new machine types (based on both Python 2.7 and 3.4). Here are the download links:

Once you have installed Miniconda, you can use conda to install additional packages that we have compiled. For example:

$ conda install pillow

Here is the full list of conda packages we have built for these machine types so far:

anaconda-client, argcomplete, astropy, bitarray, blist, boto, bsdiff4,
cheetah (Python 2 only), conda, conda-build, configobj, cython, cytoolz,
docutils, enum34 (Python 2 only), ephem, flask, grin (Python 2 only),
h5py, ipython, jinja2, lxml, mercurial (Python 2 only), netcdf4, networkx,
nltk, nose, numexpr, numpy, openpyxl, pandas, pillow, pip, ply, psutil,
pycosat, pycparser, pycrypto, pycurl, pyflakes, pytables, pytest, python,
python-dateutil, pytz, pyyaml, pyzmq (armv7l only), requests,
scikit-learn (armv7l only), scipy (armv7l only), setuptools, six,
sqlalchemy, sphinx, sympy, toolz, tornado, twisted, werkzeug, wheel

 

Please note that using either Miniconda installer (Miniconda or Miniconda3), you can create conda environments (and build Python packages) for any version of Python (either 2.7 or 3.4). Only the Python version in the root conda environment is affected by the Miniconda installer you choose.

Building your own package, and uploading to anaconda.org

If you are unfamiliar with building conda recipes, please read the conda documentation first. Nothing is special about building packages on these new systems, at least from a conda perspective. To have the “conda build” command available, run:

$ conda install conda-build

After installing “conda build”, you can begin building conda packages for armv7l and ppc64le using “conda build <recipe>”. If you have created a free account on anaconda.org, then you can upload your new packages to your channel for others to use.

$ conda install anaconda-client
$ anaconda login
$ anaconda upload <conda package>

The package should now show up on your account on anaconda.org, and that’s it! You can now tell your friends to install your package using conda, by:

$ conda install -c <anaconda.org user name> <package name>

We hope you find the addition of these two machine types useful. In addition, we have created the packages listed above for Mac OS X x86 32-bit. You’ll find all the Miniconda installers on the Miniconda download page. We don’t offer full support for these new machine types, in particular we don’t support all Anaconda packages. Please see the list of all 9 platforms for which we have created Miniconda installers, and show which platforms have major support.

 


About the Author

has been with the Anaconda Global Inc. team for over 6 years.

Read more

Join the Disucssion