I've been working quite a lot with Python Add-Ins over the past week or so in a Windows 7 SP1 configuration with ArcGIS 10.3.1 for Desktop and ArcGIS Pro 1.0.2 installed. I also installed Python 3.4.1 that comes with ArcGIS Pro and two versions of Python were happily co-existing.
Every time I made changes to my Python script in the Install subfolder and then returned to the Python Add-In folder and double-clicked makeaddin.py I would see that my *.esriaddin file had been updated because its Date Modified changed in Windows Explorer.
Then I upgraded ArcGIS Pro to version 1.1 this morning, and the double-clicking of makeaddin.py ceased to update my *.esriaddin file. I also noticed that right-clicking on a *.py and choosing Edit with IDLE now opened it with Python 3.4.1 (from ArcGIS Pro 1.1) instead of 2.7.8 (from ArcGIS 10.3.1 for Desktop). I was able to get Edit with IDLE working the way I wanted it to by referring to Distinguishing Python version when using IDLE with ArcGIS Pro and ArcGIS 10.x for Desktop architecture?
However, double-clicking makeaddin.py still does not update my *.esriaddin file, so I know that something is astray with its file association. As a workaround I am able to right-click on makeaddin.py, Edit with IDLE (which is using Python 2.7.8) and use F5 (Run | Run Module) to run it. However, I am keen to get the double-click working again.
Does anyone have a sure-fire method to check and reset the ArcGIS installed version of Python that is run by double-clicking a *.py file?
That ArcGIS Pro installation changes Windows file associations for *.py files is documented but how to change them back is not:
Windows uses file associations to associate a file extension with an executable. When executing a file, the last installation that modifies that file association wins, so if there are multiple versions of Python, the last version installed will be the one used when a .py file is double-clicked or called from a command prompt. Additionally, if a version of Python is uninstalled, the file associations for a .py will be removed.
Answer
I've figured this out with help from some nudging comments by @ChrisW on this question and an old answer by @MattWilkie.
Please only do the following at your own risk because I profess no system administration skills.
- I opened a CMD window from the Windows Start Menu as Administrator
I checked the current file association for *.py files by typing:
assoc .py=
which returned:
.py=Python.File
I checked the current file type by typing:
ftype Python.File
which returned:
Python.File="C:\Python34\python.exe" "%1" %*
I changed the file type by typing:
ftype Python.File="C:\Python27\ArcGIS10.3\python.exe" "%1" %*
Then without doing anything else, I tried clicking on my makeaddin.py file again and it updated the *.esriaddin correctly.
No comments:
Post a Comment