Run stand-alone scripts

ArcGIS AllSource includes a default, read-only conda-based Python. This Python is used in ArcGIS AllSource, and it is also the Python you use to run stand-alone scripts.

This default conda environment, arcgispro-py3, includes all Python libraries used by ArcGIS AllSource as well as several others such as scipy and pandas. There are several shortcuts for accessing this environment, including the Python Command Prompt shortcut, which opens a command prompt initialized with the arcgispro-py3 environment.

For more information about Python in the ArcGIS AllSource app, see Package Manager.

Questions and answers

Note:

All answers in this section assume ArcGIS AllSource is installed under c:\Program Files\ArcGIS. For a per-user installation or an installation to a custom location, update the path.

How do I run a stand-alone script?

In other ArcGIS products, a Python script is run from a command prompt as follows:

c:\python27\ArcGIS10.8\python.exe my_script.py

In ArcGIS AllSource, you can run the same script using the following updated path:

c:\Progra~1\ArcGIS\Pro\bin\Python\scripts\propy.bat my_script.py

Here, propy.bat acts as a replacement for calling python.exe.

Do I need to activate the conda environment to run a stand-alone script?

No. You can use python.exe under c:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3 to run your scripts. You can also call c:\Progra~1\ArcGIS\Pro\bin\Python\scripts\propy.bat as mentioned previously.

Why would I want to use propy.bat?

While working in an ArcGIS AllSource project, you can create and use the new conda environment with specific sets and versions of Python packages. For example, when running stand-alone scripts, if you run c:\Progra~1\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe (the default conda environment for ArcGIS AllSource), you will not necessarily have the same set of packages you are using in the ArcGIS AllSource application. This is why you use propy.bat: it determines the application’s active conda environment and activates it in your stand-alone script.

What is the difference between propy.bat and proenv.bat?

The differences are as follows:

  • propy.bat—A replacement for python.exe. It activates the ArcGIS AllSource conda environment arcgispro-py3 and launches Python. You can call propy.bat with or without a Python file as an argument.
    • With a script as argument, propy.bat does the following:
      1. Activates the ArcGIS AllSource conda environment
      2. Starts Python
      3. Runs the specified script
      4. Exits Python and the environment
    • If you can call propy.bat without argument, the conda environment is activated, and Python is launched in interactive window mode (REPL).
  • proenv.bat—Activates the ArcGIS AllSource environment and opens a command prompt window. From there, you can call arcgispro-py3\python.exe by typing Python to start an interactive terminal session, or type python followed by the name of the script you want to run.

Are administrative privileges required to install conda packages?

No. As of ArcGIS AllSource 2.2, the default arcgispro-py3 environment cannot be modified using the ArcGIS AllSource Package Manager, even when running ArcGIS AllSource with administrative privileges. To install conda packages, you can create an environment through the ArcGIS AllSource Package Manager or conda command line utilities.

Note:

The default arcgispro-py3 environment can be modified using conda command line utilities; however, this is not generally recommended. Modifying the arcgispro-py3 environment on a per-machine ArcGIS AllSource installation requires administrative privileges.

When I launch the Python Command Prompt window, why do I get an access is denied error?

You cannot use conda commands to modify conda environments or packages. However, this does not impact your use of Python (including proenv.bat and propy.bat). See the previous question regarding administrative privileges.

Related topics


In this topic
  1. Questions and answers