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 detect_modules >>> for arg in sysconfig.get_config_var("__CONFIG_ARGS").split()] >>> AttributeError: 'NoneType' object has no attribute 'split' >>> make: *** [sharedmods] Error 1 > >> File "./setup.py", line 1368, in detect_modules >> if '--with-system-expat' in sysconfig.get_config_var("CONFIG_ARGS"): >> TypeError: argument of type 'NoneType' is not iterable >> make: *** [sharedmods] Error 1 >> >> Which again points to problems with >> sysconfig.get_config_var("CONFIG_ARGS"): > > [The earlier call was with "__CONFIG_ARGS", 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 get_config_var(name): > return get_config_vars().get(name) > > That defaults to None if name is not a key in the dict returned by > get_config_vars(). 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 "CONFIG_ARGS" > 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 get_config_var(*args): > global _CONFIG_VARS > if _CONFIG_VARS is None: > _CONFIG_VARS = {} > <code to populate _CONFIG_VARS, including> > if os.name in ('nt', 'os2'): > _init_non_posix(_CONFIG_VARS) > if args: > vals = [] > for name in args: > vals.append(_CONFIG_VARS.get(name)) > return vals > else: > return _CONFIG_VARS > > At 456 is > def _init_non_posix(vars): > """Initialize the module as appropriate for NT""" > # set basic install directories > ... > > "CONFIG_ARGS" 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
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4