[GIS] SP1 for ArcGIS 10.1 has extension for 64-bit Python for background geoprocessing — implications for other Python use

arcgis-10.1arcpybackground-geoprocessing

If the 64-bit Background Geoprocessing for ArcGIS Desktop 10.1sp1 is installed how does that affect Python configuration for general use?

Esri has released SP1 for the ArcGIS 10.1 product, and for the Desktop component has made available a 64-bit Python 2.7.2 instance that when installed replaces Esri 32-bit Python 2.7 calls with 64-bit calls for background geoprocessing (processing sent out side of an active ArcGIS Desktop GUI session).

Installation is optional–i.e. without it ArcGIS Desktop continues with only 32-bit user memory space available. With it, a \bin64 entry is made to the Esri program folder, and registry keys are established for 64 bit processing at "HKEY_LOCAL_MACHINE\SOFTWARE\ESRI\ArcGIS 10.1 SP1 for Desktop Background Geoprocessing (64-bit)" and background geoprocessing is then done in 64-bit memory space.

Both Esri's 32-bit and now its 64-bit Python are full 2.7.2 installations.

During background geoprocessing Esri's registry, path and configuration files take care of calling the 64-bit Python executables. While use of 32-bit Python is retained in the ArcGIS Desktop session where needed.

So, what is left to each user is decide whether to integrate the installed 64-bit Python 2.7.2 into their computing needs outside of ArcGIS. And how best to do that when both 32 and 64 bit versions of Python are resident on the system?

Asked another way–Esri takes care of integration of 64-bit Python within its ArcGIS Desktop, so what ways will work to configure it for the rest of the use cases beyond ArcGIS?

Best Answer

So, what is left to each user is decide whether to integrate the installed 64-bit Python 2.7.2 into their computing needs outside of ArcGIS. And how best to do that when both 32 and 64 bit versions of Python are resident on the system?

As I understood you are asking the way we can distinguish different versions of python and use it according to our needs.

The easiest way is to exactly specify the interpreter you are going to use to run your script. More details can be found in this SO q/a.