Select to view content in your preferred language

Is it possible to run arcpy outside of windows?

1467
4
01-25-2017 04:35 PM
ChrisLowrie
Emerging Contributor

I have a fairly computationally expensive task written in arcpy, and my team is trying to get it to run over a distributed network (apologies, I don't know all of the specifics).  We have to host it on a machine which supports Python, but not ArcGIS and not any Windows software.

Is it possible to somehow import the arcpy python library on this machine, even if it doesn't support windows?

0 Kudos
4 Replies
DanPatterson_Retired
MVP Emeritus

here are the specs ArcGIS Desktop 10.5 system requirements—ArcGIS Help | ArcGIS Desktop 

there are windows requirements in a variety of locations... you might want to pass this on to those that speak the lingo... my guess no... but if I am wrong, that is good news for you

DanPatterson_Retired
MVP Emeritus
0 Kudos
Luke_Pinner
MVP Regular Contributor

You may wish to look into ArcGIS Server which is available for Linux (RHEL and derivatives supported).

ArcGIS Server 10.5 system requirements—Installation Guides (10.5) | ArcGIS Enterprise 

JoshuaBixby
MVP Esteemed Contributor

lpinner‌ is pointing you in the right direction.  Since ArcGIS Desktop, both ArcMap and ArcGIS Pro, are only available on Windows, your only option to run ArcPy on non-Windows machine is to install ArcGIS Server onto the non-Windows machine, if the specific non-Windows OS is one of the supported OSes.

OS question aside, saying you want to run ArcPy over a "distributed network" raises many more questions than it answers.  Distributed processing is more complex than multiprocessing, and getting multiprocessing ArcPy code to work, not to mention work well, takes a fair amount more effort and experience than doing regular ArcPy.

You have many challenges ahead of you, good luck.  If you want more feedback or assistance from the community, you will need to provide more specifics about the distributed network environment as well as the specific ArcPy code you want to run.