Esri announced a number of Conda updates with regards to current and upcoming versions of ArcGIS Pro. Also covered in this blog are the functionality of Anaconda Navigator and Anaconda Cloud and how Esri plans to integrate both into upcoming versions of Pro.
Conda and Anaconda
Conda is a Python package manager that was introduced in ArcGIS Pro 1.3 and is a well-known tool in the data science community. It is not Python-exclusive and can also be used for other programming languages such as R. The advantage of Conda is that it lets you manage different Python versions, projects, packages and their dependencies. Esri’s adoption of Conda was a logical step because until then, Esri offered no solution to manage packages or different Python versions – you had to do this yourself manually through “pip install” or using the Virtualenv tool.
If you’re not using ArcGIS Pro, which comes with a pre-installed version of Conda, you can still make use of Conda by downloading Anaconda, a software package that includes Python itself along with binaries for several hundred third-party open-source projects. This means that Anaconda and Conda are two separate (although related) entities: Conda is a package manager; Anaconda is a distribution platform.
Managing packages and environments
The latest version of the software is called Anaconda3, which is available in 32 and 64-bit versions from Continuum. This version has a version number of 4.3.1 and will install Python 3.6.0 as the default Python version. With it, you get a number of applications such as Jupyter Notebook and a variety of Python consoles and IDEs. Of particular interest here are Anaconda Cloud and Anaconda Navigator.
Anaconda Navigator provides a GUI for managing local environments and install packages. The term “environment” refers to a collection of packages and Python install. The GUI provides an overview of existing environments and the packages it contains. There´s one pre-defined environment available, a so-called “root” environment that provides you with 168 pre-installed Python packages, while every new user-generated environment will install five default Python packages, including pip, which means you´re free to use that too for package management. What´s interesting about Navigator is that with every new environment you can choose a preferred Python version and install from a list of 1035 packages that are available locally. Once installed, you can start working with an environment by opening up a terminal or Python IDE.
Anaconda Cloud can be used to search for packages in a cloud-based environment. Opening up the application, a browser opens the following URL. This is the place where you can share packages, notebooks and environments with others. You need to create a user account before you can use it, so it´s wise to do so. After creating your own user account, you can sign in directly to this environment from Anaconda Navigator, by clicking the button in the upper-right corner that says “sign in to Anaconda Cloud”. This will cause another browser window to open on a private package repository where you can upload your own packages and files. You will have to sign in on the website to be able to perform searches for files or packages. For example, a search for “arcgis” will yield several results, complete with download instructions using Conda.
Conda integration by Esri
Esri already announced its plans for upcoming versions of ArcGIS Pro with regards to Conda. Basically, it is geared to inclusion of Ananconda Cloud and Navigator features into Pro’s user environment. The latest version of Pro, version 1.4, includes a Python Package Manager that is comparable to how packages are managed inside of Anaconda Navigator. It uses Python 3.5, while the latest version of Anaconda3 uses version 3.6. It does not yet enable you to manage environments as with Navigator. This feature is expected to be included in the 2.0 release of Pro, that will also include integration with R tools and the ArcGIS bridge. The 2.1 release of Pro will include “channel” support, which refers to so-called Github repositories inside of Anaconda Cloud where people share their work as well as packaging support. Esri also plans to decouple the arcpy installation with an ArcGIS product: the arcpy package itself will be distributed as a package from 2.1, to make it easier to distribute packages that depend on arcpy. However, this will still require a licensed and installed ArcGIS version in order to be able to use it. This also makes it possible to control the version of arcpy you want to use.