Calling ArcGIS processes from python can be a wonderful time-saver; allowing the user to code a process to loop through hundreds of data-sets autonomously.
Most ArcGIS processes are only 32 bit, so can slow down significantly when working on large datasets; data has to be shuffled in and out of memory (RAM). However, newer ArcGIS 64 bit processes allow more memory to be addressed, potentially resulting in significant reductions in processing time.
To take advantage of the Arc 64 bit processes you’ll need both a 64 bit python install, and the ArcGIS 64 bit background geoprocess software installed; and then you’ll need to make them play nicely together.
See, both Arc and Anaconda (my python install of choice) have their own python installs. The Arc processes are located in the Arc install, and the Anaconda install probably won’t see them. Worse, depending on your install order, the Arc install might break your Anaconda install.
To make Arc and Anaconda 64bit work together, we’ve found that the following works:
Make sure that the Anaconda install is the only one in the system environment paths. On my drive that includes the following:
C:\Program Files\Anaconda2 C:\Program Files\Anaconda2\Scripts C:\Program Files\Anaconda2\Library\bin
Next, you need to allow your anaconda install to locate the Arc python processes by copying the *.pth file from your Arc \site-packages directory, to your Anaconda \site-packages directory. In my case that took the following form:
Copy > DTBGGP64.pth from C:\Python27\ArcGISx6410.3\Lib\site-packages to C:\Program Files\Anaconda2\Lib\site-packages