We – the Python team at esri – would like to share what we think are the highlights of the ArcGIS Pro 2.8 release for our Python users.
Conda Upgrade
After long last (the last major conda upgrade was way back in ArcGIS Pro 2.1), conda has been upgraded from version 4.3.27 to version 4.9.2. That upgrade yields some excellent benefits. You can read through the conda release notes on your own, but here are our highlights:
- The performance of conda has been substantially improved with the introduction of the .condafile format for distributing packages, so cloning environments and installing or upgrading packages have seen a significant speed boost when this format is available.
- There are some new options with conda commands, we’d like to highlight some that we think are notable:
- conda’s enhanced package query language, MatchSpec, can now bind individual packages to a specific channel using the :: operator. For example, say you would like to create a new Python environment from scratch and install both arcpy and pytorch. However, you don’t want to use pytorch from the esri channel, you specifically want to install pytorch version 1.7.1 from the pytorch channel. You can do this with the following command:
conda create -n my_env python arcpy pytorch::pytorch==1.7.1
MatchSpec can be used with create, install, update, remove, and search commands.
On a side note – as of Pro 2.7, arcpy is a conda package. This means that it is now possible to create a valid environment from scratch as shown in the example above! You will, however, still need a licensed installation of ArcGIS Pro to be able to do this.
- When you wish to install packages only from channels you designate, and not from the default channel or those specified in .condarc, you can now use --override-channels.
- You can now prevent changing already-installed dependencies using the --freeze-installed flag on the install and update commands.
- The new flag --envs added to conda search allows searching across all environments to find the environments that satisfy the search criteria (i.e., contain a particular package).
- ArcGIS Pro uses an isolated conda installation and doesn't support conda init at this time.
Independent of the conda upgrade, installing geopandas into the same environment as arcpy is no longer a problem. Try this:
conda create -n my_env python arcpy geopandas
Notebooks in Pro
In the realm of notebooks in Pro, you can now choose the position of your notebooks when first opened in a Project. You can find this option in the Project Settings >> Option dialog under the User Interface tab. At the bottom, expand the Notebook section and choose from 1) stacking the map on top of the active map (default), docking the view below the active map, or opening the view in a separate window.

There’s also a new Export button on the Notebook ribbon, from which you can choose between 2) exporting the active notebook as a Python (.py) or HTML (.html) file.

Everything else that's new with Python & arcpy
Python has been upgraded from 3.7.9 to 3.7.10 to keep up with security patches. Nothing too exiting here, but there are also a few enhancements to arcpy to check out:
- FeatureSet and RecordSet objects can now be created from Esri JSON format.
- The SetLogMetadata and GetLogMetadata functions have been added to control whether dataset metadata is updated with geoprocessing tool information.
- Geometry classes (Multipoint, PointGeometry, Polygon, and Polyline) now support named arguments.
- The Array class can accept any iterable object that returns Point objects.
- In the arcpy.mp (Mapping) module, the LayerTime class has been added to provide information about how time is stored and configured in time-enabled layers, and the MapTime class has been added to provide access to time management operations when time-enabled layers are displayed in a map frame on a layout.
- In the arcpy.na (Network Analyst) module, solver result objects now have a spatialReference property and an extent method.
- In the arcpy.sa (Spatial Analyst) module, the Aggregate and Slope geoprocessing tools now create a function raster output.