Python Add-Ins for ArcGIS Pro

Idea created by bchastain on Mar 23, 2015
    Not in Current Product Plan

    We're just now getting the full functionality of Python in ArcMap via Python Add-Ins, but now everything is moving to ArcGIS Pro and I noticed that there are not any plans to include Python Add-Ins for Pro as well. I do like the new mapping module for Pro, but please also give us the ability to create Add-Ins with Python as well.


    We appreciate the time that many of you have invested in explaining how you currently use Python add-ins in ArcMap, and why they are important to your organizations. Currently, there are no plans for Esri Development to work on Python add-ins for ArcGIS Pro. 


    Python is the primary language used to build custom geoprocessing tools and scripts to perform and automate spatial analysis, data management, and extensive data processing workflows across the ArcGIS platform. This is a long-term vision for Python and ArcGIS going back more than a decade, which will continue going forward.  

    The use of Python in ArcGIS has grown exponentially in recent years, through projects like the ArcGIS API for PythonArcGIS NotebooksConda environment management, and developments and enhancements for ArcPy such as the new ArcGIS Pro modules arcpy.mparcpy.metadata, and arcpy.nax 


    The primary drive for Python in ArcGIS for the foreseeable future will be the following: 

    • Advancing spatial data science through new modules and data objects 
    • Bringing a powerful Python Notebook experience to the ArcGIS platform 
    • Enabling scientific, machine learning, deep learning, and other third-party library integrations 
    • Continuing to support and enhance the automation of GIS tasks through the comprehensive ArcPy library 


    Python capabilities for application GUI customization, like ArcMap Python add-ins, have not been and will not be prioritized in the immediate future. The ArcGIS Pro add-in and SDK technology and developer story is considerably different than it was in ArcMap, redesigned for the new application built on new technology and paradigms. This means that developing Python add-ins for ArcGIS Pro would require a complete rewrite of the Python add-in framework Python’s use as an add-in language would be very challenging in an asynchronous and multi-threaded application like ArcGIS Pro due to the Python Global Interpreter Lock (GIL), which prevents multiple threads from executing Python code at once. 


    On a related topic, custom ArcObjects and .NET-based geoprocessing tools (libraries with custom GPFunction and GPFunctionFactory) are not supported in ArcGIS Pro. Developers who previously wrote tools with ArcObjects have had to transition to Python, which has added a significant demand on providing more capabilities in ArcPy. The goal is for ArcPy to provide a complete API for data management and data processing. 


    There are new capabilities you can take advantage of in the latest releases of ArcGIS Pro to accomplish several of the workflows you described as requiring or benefiting from Python add-ins, including:


    • The module provides access to the ArcGIS Pro CIM (Cartographic Information Model), giving you full control of the project, maps, and layers through Python code. This code can make changes to the current ArcGIS Pro project and active map, and can run through the Python window, a notebook within ArcGIS Pro, or as a geoprocessing script tool. 
    • You can deploy Python capabilities through geoprocessing toolboxes as a Python module, to make complex solutions easily accessible to your users, and allow these geoprocessing tools to be available by default from the Geoprocessing pane without needing to manually add them. This module can be distributed through a Conda channel so when the library is added to a system’s Python environment the tools will be available by default. 
    • If novice or inexperienced users need to follow a directed series of steps to complete a task, ArcGIS Pro Tasks provides the ability to author steps through a wizard-like window to perform steps like selecting features, choosing options in a choicelist, running geoprocessing tools, and other easily configured actions and commands. 


    We understand that this message may be disappointing or frustrating, but we heard you when you asked for clearer communication about this functionality’s future in ArcGIS Pro.  Though Python add-ins will not be coming to ArcGIS Pro, Esri continues to see Python as the language for data processing and spatial data science and analysis across the ArcGIS platform.  We hope that sharing these details about the Esri Python development team’s priorities and direction helps you plan your work and adjust as necessary.