ArcGIS Linux runs arcpy using wine [1]. Python is a simple wrapper in bash.

Step-by-step guide

  1. /arcgis/server/tools/python

    >>import arcpy, os
    >> sdList = os.listdir('c:/')
    >> print sdList
    ['Program Files', 'Program Files (x86)', 'ProgramData', 'Python27', 'users', 'windows



Python3 via Wine cmd

See [2] for running conda like Windows environment.

  1. $. /arcgis/server/framework/etc/arcenv
  2. $wine cmd
  3. cd c:\Program Files\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts
  4. conda create --clone arcgispro-py3 --prefix "Z:\home\arcgis\bin\Python\envs\test"
  5. proswap Z:\home\arcgis\bin\Python\envs\test
  6. conda install pyarrow

    1. This will install packages under Z:\home\arcgis\bin\Python\envs\test
  7. Run python and test import.

    Z:\home\arcgis\bin\Python\envs\test>python
    python
    Python 3.6.8 |Anaconda, Inc.| (default, Feb 21 2019, 18:30:04) [MSC v.1916 64 bit (\
    AMD64)] on win32
    
    Warning:
    This Python interpreter is in a conda environment, but the environment has
    not been activated. Libraries may fail to load.  To activate this environment
    please see https://conda.io/activation
    
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import pyarrow


Python3 via Wine only

  1. Set up path for wine.

    $. /arcgis/server/framework/etc/arcenv
  2. Execute python3 under wine.

    $wine /arcgis/server/framework/runtime/ArcGIS/bin/Python/envs/arcgispro-py3/python.exe 
  3. Alternatively, you can run python in custom environment.

    $wine /home/arcgis/bin/Python/envs/test/python.exe
ArcGIS Python doesn't include GDAL but it has many APIs [3].

References

  1. https://www.linux.org/threads/running-windows-batch-files-on-linux.11205/
  2. https://enterprise.arcgis.com/en/server/latest/publish-services/windows/deploying-custom-python-packages.htm
  3. https://pro.arcgis.com/en/pro-app/arcpy/classes/raster-object.htm