Opened 8 years ago

Closed 7 years ago

#3556 defect closed fixed (fixed)

win32 installer does not dected Python installation directory correctly

Reported by: osuchw Owned by:
Priority: highest Milestone: Twisted-9.0
Component: release management Keywords:
Cc: exarkun, radix, moonfallen, PenguinOfDoom Branch:


Both Twisted 8.1 and upcoming 8.2RC Windows installers copy files into C:\Python25 regardless where the real Python installation resides. Python is on the PATH Tested on WindowsXP SP3

C:\>python -c "import sys;print sys.platform;print sys.getwindowsversion();print sys.version"
(5, 1, 2600, 2, 'Service Pack 3')
2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)]

Following piece of .iss script used to get it correctly for me. (long time ago)

function GetPythonInstallPath(Ver: String) : String;
 	RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Python\PythonCore\' + Ver + '\InstallPath', '', Result);

Change History (8)

comment:1 Changed 8 years ago by exarkun

  • Type changed from regression to defect

If this didn't work in the past, then it's not a regression. A regression is when something which used to work breaks.

comment:2 Changed 8 years ago by osuchw

Let's not split the hairs but it used to work in previous, previous version when installer was built with " bdist_wininst"

comment:3 Changed 7 years ago by exarkun

  • Cc exarkun radix moonfallen PenguinOfDoom added
  • Priority changed from normal to highest

osuchw, thanks for reporting this issue. I didn't intend any offense by my previous comment, I just wanted to explain why I was changing the ticket type.

I'm not sure what we should do with the .iss script included in the ticket description. Maybe one of our developers more familiar with the Windows installer does, but it would be great if you could provide a little more information here.

Meanwhile, I'll add some CCs to this ticket and hope that someone pays it some attention.

I think this would be a nice-to-have for 9.0, but if it doesn't get attention soon I'm not sure it should actually block the release.

comment:4 Changed 7 years ago by therve

I've checked myself with the latest release some time ago, and it worked fine on my machine. Here is the subset of code which is doing the detection, which looks correct to me:

def getPythonHomeForVersion(ver):
    """Return the home directory for a Python version specified as 'M.m'"""
    res = getValueFromReg(r'Software\Python\PythonCore\%s\InstallPath' %
                          ver, None, r'C:\pythonxx')
    if res == r'C:\pythonxx':
        res = getValueFromReg(r'Software\Python\PythonCore\%s\InstallPath' %
                              ver, None, r'C:\pythonxx', hive=winreg.HKCU)
    return res

comment:5 follow-up: Changed 7 years ago by exarkun

osuchw, can you still reproduce this problem with the 8.2 windows installer?

comment:6 in reply to: ↑ 5 Changed 7 years ago by osuchw

Replying to exarkun:

osuchw, can you still reproduce this problem with the 8.2 windows installer?

I have confirmed the latest installer behaves correctly for Python 2.5 and 2.6. I had my machine rebuilt since I have raised the original ticket, so it could be that my registry was wanky (technical term) at the time.

The getPythonHomeForVersion looks into the same location as the piece of iss script I have listed in the original ticket. I say close the ticket.

comment:7 Changed 7 years ago by exarkun

  • Resolution set to fixed
  • Status changed from new to closed


comment:8 Changed 6 years ago by <automation>

  • Owner therve deleted
Note: See TracTickets for help on using tickets.