[Python-Dev] Compiling 2.7.2 on OS/2 (original) (raw)
Paul Smedley paul at smedley.id.au
Sat Jan 7 09:48:10 CET 2012
- Previous message: [Python-Dev] Compiling 2.7.2 on OS/2
- Next message: [Python-Dev] Compiling 2.7.2 on OS/2
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi All,
On 06/01/12 10:25, Terry Reedy wrote:
On 1/5/2012 3:01 PM, Paul Smedley wrote:
File "./setup.py", line 1154, in detectmodules _for arg in sysconfig.getconfigvar("CONFIGARGS").split()] AttributeError: 'NoneType' object has no attribute 'split' make: *** [sharedmods] Error 1 File "./setup.py", line 1368, in detectmodules if '--with-system-expat' in sysconfig.getconfigvar("CONFIGARGS"): TypeError: argument of type 'NoneType' is not iterable make: *** [sharedmods] Error 1 Which again points to problems with sysconfig.getconfigvar("CONFIGARGS"): _[The earlier call was with "CONFIGARGS", for whatever difference that makes.] It appears to be returning None instead of [] (or a populated list). In 3.2.2, at line 579 of sysconfig.py is def getconfigvar(name): return getconfigvars().get(name) That defaults to None if name is not a key in the dict returned by getconfigvars(). My guess is that it always is and and the the value is always a list for tested win/*nix/mac systems. So either setup.py has the bug of assuming that there is always a list value for "CONFIGARGS" or sysconfig.py has the bug of not setting it for os2, perhaps because of a bug elsewhere. At line 440 of sysconfig.py is def getconfigvar(*args): global CONFIGVARS if CONFIGVARS is None: CONFIGVARS = {} <code to populate CONFIGVARS, including> if os.name in ('nt', 'os2'): initnonposix(CONFIGVARS) if args: vals = [] for name in args: vals.append(CONFIGVARS.get(name)) return vals else: return CONFIGVARS At 456 is def initnonposix(vars): """Initialize the module as appropriate for NT""" # set basic install directories ... "CONFIGARGS" is not set explicitly for any system anywhere in the file, so I do not know how the call ever works.
using _init_posix() for 'os2' instead of _init_non_posix is the fix for this.
sysconfig.py also needs the following changes: --- \dev\Python-2.7.2-o\Lib\sysconfig.py 2012-01-06 19:27:14.000000000 +1030 +++ sysconfig.py 2012-01-07 19:03:00.000000000 +1030 @@ -46,7 +46,7 @@ 'scripts': '{base}/Scripts', 'data' : '{base}', },
- 'os2_home': {
- 'os2_user': { 'stdlib': '{userbase}/lib/python{py_version_short}', 'platstdlib': '{userbase}/lib/python{py_version_short}', 'purelib':
'{userbase}/lib/python{py_version_short}/site-packages', @@ -413,9 +413,9 @@ _CONFIG_VARS['platbase'] = _EXEC_PREFIX _CONFIG_VARS['projectbase'] = _PROJECT_BASE
if os.name in ('nt', 'os2'):
if os.name in ('nt'): _init_non_posix(_CONFIG_VARS)
if os.name == 'posix':
if os.name in ('posix', 'os2'): _init_posix(_CONFIG_VARS) # Setting 'userbase' is done below the call to the
- Previous message: [Python-Dev] Compiling 2.7.2 on OS/2
- Next message: [Python-Dev] Compiling 2.7.2 on OS/2
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]