Select to view content in your preferred language

Python in ArcGIS 10.3

27587
34
06-10-2014 10:25 AM
MathewCoyle
Honored Contributor
http://gisinc.com/talk/2014-esri-international-developer-summit-day-2-recap
Python 3.4 will be supported with ArcGIS for Professionals

Does any know for certain which version of Python will ship with 10.3? Since it comes with ArcGIS for Professionals I thought it would be 3.4 but I haven't found any officials sources. Previous sources seemed to indicate ArcGIS 11 would be moving to 3.x but I'm not sure if this product release was renamed or that release was pushed back.
Tags (2)
34 Replies
DanPatterson_Retired
MVP Emeritus

Curtis... yes..I have that equivalent in the 10.3 folder, so it should be an easy write one issue.  I don't use IDLE at all.  I only use PythonWin and PyScripter.  The interesting thing that I noticed is that Pyscripter's reporting contains the results of both streams, so that if it can't find a module on the 10.3 site-packages stream, it finds it in the 'regular' site-packages stream.  I have few modules that are like that but it is no biggie for me.

I would be more interested in knowing why Esri has the installation structure that they do..but I suppose that other  'packages' like SciPy, Anacondas etc etc do the same?  It would be somewhat easier if the base python could be left alone and everything either uses it or installs it as it was intended.  Reasons for this are beyond my interest...especially if someone mentions messing with registry items.

0 Kudos
curtvprice
MVP Alum

Esri has their own installation folders for their pythons to make sure they are using the version of numpy, matplotlib etc that that their shipped and supported python tools (there are oodles of these in the Geostats toolbox) are expecting. 

On Windows this is especially problematic because of .dll conflicts that can crop up because unlike unix, it's not all about the path; .dlls are registered with Windows - it can get very complicated and messy (and disastrous) hence the term ".dll hell."

A term you hear sometimes is "Python stack" for a python install with a known set of modules (at certain versions) that are packaged to play well together. Esri is currently building a Python stack with a set of popular third-party modules ready to go (and compatible with arcpy) that includes scipy, pandas, and netcdf, among others. They have released one for ArcGIS Pro 1.0 / Python 3.4 and one will be available for Desktop 10.3.1 / Python 2.7.x at user conference time. I really like this approach as it allows me to write a script tool against a standard Python distribution that Esri ships with their software, without asking the user to deal with Python software installs.

Enthought ($) and Anaconda (open-source) are python systems that are set up to allow easy install and update of third-party packages, even if you do not have admin access.  Both of these (and python itself) are moving toward the support of something called "virtual environments" which are setups that allow you to install a stack of packages for a certain purpose, and maintain a separate stack of packages for another (for example, a stack compatible with ArcGIS 10.2 and one compatible with 9.3).

0 Kudos
DanPatterson_Retired
MVP Emeritus

​Thanks Curtis...I wish they would have UC at the end of school term so I could have the summer to deal with difference...just got 10.3 installed with Python 2.7.x and those you mentioned.  It is disappointing that Pro is the only one moving to 3.4.  I have been looking at the differences between 2.7 and 3.4 and there is not much that affects my work, so there must be a hidden reason as to what the reasoning is...I will have to search/sniff around some more to get some answers.  I am more interested in the developments with numpy which may have more impact on Arc* than the switch in Python does.  Sorry Matthew for hijacking the thread... Thanks again Curtis

curtvprice
MVP Alum

Many 3.4 syntax changes (for example, print being a function instead of a statement) which are minor, have been incorporated in 2.6/2.7. I believe the biggest changes are under the hood, in how things are handled beneath the level you and I generally care about.  The biggest thing adjustment we need to make is to get in the habit of writing Python scripts that run in both versions -- not that big of a lift really.

0 Kudos