You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
assignee='https://github.com/warsaw'closed_at=<Date2013-11-22.16:09:39.550>created_at=<Date2013-11-11.17:29:57.624>labels= ['type-bug', 'library']
title='"SO" config var not getting set'updated_at=<Date2014-03-09.22:50:24.773>user='https://github.com/msabramo'
I just installed Python 3.0a4 from source on an Ubuntu system and noticed that it doesn't seem to set the distutils.sysconfig config var: "SO":
vagrant@ubuntu:~/src/Python-3.4.0a4$ python3.4
Python 3.4.0a4 (default, Nov 11 2013, 17:11:59)
[GCC 4.6.3] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from distutils import sysconfig
>>> sysconfig.get_config_var("SO")
>>> sysconfig.get_config_var("SO") is None
True
This worked fine for me in Python 3.3:
vagrant@ubuntu:~/src/Python-3.4.0a4$ python3.3
Python 3.3.2 (default, May 16 2013, 18:32:41)
[GCC 4.6.3] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from distutils import sysconfig
>>> sysconfig.get_config_var("SO")
'.so'
Issue bpo-16754: Fix the incorrect shared library extension on linux. Introduce
two makefile macros SHLIB_SUFFIX and EXT_SUFFIX. SO now has the value of
SHLIB_SUFFIX again (as in 2.x and 3.1). The SO macro is removed in 3.4.
Although this does introduce some backward compatibility issues. Perhaps sysconfig.get_config_var('SO') should be deprecated in 3.4 and removed in 3.5.
msabramo commented on Nov 11, 2013
msabramomannequin
MannequinAuthor
More actions
Thanks Barry, for tracking down that this is intentional.
except ImportError:
from distutils.sysconfig import get_config_var
import inspect
_fm_path = os.path.normpath(os.path.dirname(os.path.abspath(
inspect.getfile(inspect.currentframe())))
+"/../../PublicKey/_fastmath"+get_config_var("SO"))
if os.path.exists(_fm_path):
raise ImportError("While the _fastmath module exists, importing "+
"it failed. This may point to the gmp or mpir shared library "+
"not being in the path. _fastmath was found at "+_fm_path)
What would be the way to express this now in Python >= 3.4?
On Nov 11, 2013, at 06:27 PM, Marc Abramowitz wrote:
What would be the way to express this now in Python >= 3.4?
For now, use sysconfig.get_config_var('EXT_SUFFIX') though if no one objects
to my patch, I'll restore 'SO' for 3.4. We'll add a DeprecationWarning and
get rid of it in 3.5.
Activity
msabramo commentedon Nov 11, 2013
I just installed Python 3.0a4 from source on an Ubuntu system and noticed that it doesn't seem to set the distutils.sysconfig config var: "SO":
This worked fine for me in Python 3.3:
warsaw commentedon Nov 11, 2013
Indeed, this happens for me too in default head.
warsaw commentedon Nov 11, 2013
Never mind, this is an intentional change:
two makefile macros SHLIB_SUFFIX and EXT_SUFFIX. SO now has the value of
SHLIB_SUFFIX again (as in 2.x and 3.1). The SO macro is removed in 3.4.
Although this does introduce some backward compatibility issues. Perhaps sysconfig.get_config_var('SO') should be deprecated in 3.4 and removed in 3.5.
msabramo commentedon Nov 11, 2013
Thanks Barry, for tracking down that this is intentional.
I wonder how one gets this value in Python code now? For example, the reason I stumbled upon this in the first place is that there is some code in PyCrypto (https://github.com/dlitz/pycrypto/blob/master/lib/Crypto/SelfTest/PublicKey/test_RSA.py#L464) that uses
get_config_var("SO")thusly:What would be the way to express this now in Python >= 3.4?
warsaw commentedon Nov 11, 2013
Here's a patch, sans NEWS and any docs.
[-]"SO" config var not getting set[/-][+]SO configuration variable should be deprecated in 3.4[/+]warsaw commentedon Nov 11, 2013
Note that obviously the DeprecationWarning is not raised if you do
sysconfig.get_config_vars()['SO']
but it still gets mapped to EXT_SUFFIX in that case.
warsaw commentedon Nov 11, 2013
On Nov 11, 2013, at 06:27 PM, Marc Abramowitz wrote:
For now, use sysconfig.get_config_var('EXT_SUFFIX') though if no one objects
to my patch, I'll restore 'SO' for 3.4. We'll add a DeprecationWarning and
get rid of it in 3.5.
[-]SO configuration variable should be deprecated in 3.4[/-][+]"SO" config var not getting set[/+]python-dev commentedon Nov 21, 2013
New changeset fedc2b8fbb6e by Barry Warsaw in branch 'default':
http://hg.python.org/cpython/rev/fedc2b8fbb6e
vstinner commentedon Nov 22, 2013
Test is failing on Windows:
http://buildbot.python.org/all/builders/x86%20Windows%20Server%202003%20%5BSB%5D%203.x/builds/1758/steps/test/logs/stdio
======================================================================
ERROR: test_SO_in_vars (test.test_sysconfig.TestSysConfig)
----------------------------------------------------------------------
======================================================================
FAIL: test_SO_value (test.test_sysconfig.TestSysConfig)
----------------------------------------------------------------------
python-dev commentedon Nov 22, 2013
New changeset 331b7a8bb830 by Barry Warsaw in branch 'default':
A fix for bpo-19555 on Windows.
http://hg.python.org/cpython/rev/331b7a8bb830
python-dev commentedon Nov 22, 2013
New changeset 8a130fd92255 by Barry Warsaw in branch 'default':
bpo-19555 for distutils, plus a little clean up (pyflakes, line lengths).
http://hg.python.org/cpython/rev/8a130fd92255
python-dev commentedon Mar 9, 2014
New changeset ac2ee9fc353a by R David Murray in branch 'default':
whatsnew: deprecation of sysconfig SO key (bpo-19555).
http://hg.python.org/cpython/rev/ac2ee9fc353a
Removes SO config variable in sysconfig
gh-91670: Removes `SO` config variable in `sysconfig.py` (#91671)
Fix: Python3 build failure
Fix: distutils related build failure in python 3.11, removal in 3.12
Fix: distutils related build failure in python 3.11, removal in 3.12