Issue19555
Created on 2013-11-11 17:29 by Marc.Abramowitz, last changed 2022-04-11 14:57 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| issue19555.txt | barry, 2013-11-11 19:56 | review | ||
| Messages (12) | |||
|---|---|---|---|
| msg202634 - (view) | Author: Marc Abramowitz (Marc.Abramowitz) * | Date: 2013-11-11 17:29 | |
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' ``` |
|||
| msg202637 - (view) | Author: Barry A. Warsaw (barry) * ![]() |
Date: 2013-11-11 18:19 | |
Indeed, this happens for me too in default head. |
|||
| msg202638 - (view) | Author: Barry A. Warsaw (barry) * ![]() |
Date: 2013-11-11 18:21 | |
Never mind, this is an intentional change: - Issue #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. |
|||
| msg202639 - (view) | Author: Marc Abramowitz (Marc.Abramowitz) * | Date: 2013-11-11 18:27 | |
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: ``` 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? |
|||
| msg202648 - (view) | Author: Barry A. Warsaw (barry) * ![]() |
Date: 2013-11-11 19:56 | |
Here's a patch, sans NEWS and any docs. |
|||
| msg202649 - (view) | Author: Barry A. Warsaw (barry) * ![]() |
Date: 2013-11-11 19:57 | |
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. |
|||
| msg202650 - (view) | Author: Barry A. Warsaw (barry) * ![]() |
Date: 2013-11-11 20:01 | |
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.
|
|||
| msg203701 - (view) | Author: Roundup Robot (python-dev) ![]() |
Date: 2013-11-21 23:57 | |
New changeset fedc2b8fbb6e by Barry Warsaw in branch 'default': - Issue #19555: Restore sysconfig.get_config_var('SO'), with a http://hg.python.org/cpython/rev/fedc2b8fbb6e |
|||
| msg203735 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2013-11-22 10:58 | |
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) ---------------------------------------------------------------------- Traceback (most recent call last): File "E:\Data\buildslave\cpython\3.x.snakebite-win2k3r2sp2-x86\build\lib\test\test_sysconfig.py", line 388, in test_SO_in_vars self.assertIsNotNone(vars['SO']) KeyError: 'SO' ====================================================================== FAIL: test_SO_value (test.test_sysconfig.TestSysConfig) ---------------------------------------------------------------------- Traceback (most recent call last): File "E:\Data\buildslave\cpython\3.x.snakebite-win2k3r2sp2-x86\build\lib\test\test_sysconfig.py", line 382, in test_SO_value sysconfig.get_config_var('EXT_SUFFIX')) AssertionError: None != '.pyd' |
|||
| msg203793 - (view) | Author: Roundup Robot (python-dev) ![]() |
Date: 2013-11-22 16:08 | |
New changeset 331b7a8bb830 by Barry Warsaw in branch 'default': A fix for issue 19555 on Windows. http://hg.python.org/cpython/rev/331b7a8bb830 |
|||
| msg203865 - (view) | Author: Roundup Robot (python-dev) ![]() |
Date: 2013-11-22 20:31 | |
New changeset 8a130fd92255 by Barry Warsaw in branch 'default': Issue 19555 for distutils, plus a little clean up (pyflakes, line lengths). http://hg.python.org/cpython/rev/8a130fd92255 |
|||
| msg212996 - (view) | Author: Roundup Robot (python-dev) ![]() |
Date: 2014-03-09 22:50 | |
New changeset ac2ee9fc353a by R David Murray in branch 'default': whatsnew: deprecation of sysconfig SO key (#19555). http://hg.python.org/cpython/rev/ac2ee9fc353a |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022-04-11 14:57:53 | admin | set | github: 63754 |
| 2014-03-09 22:50:24 | python-dev | set | messages: + msg212996 |
| 2013-11-22 20:31:56 | python-dev | set | messages: + msg203865 |
| 2013-11-22 16:09:39 | barry | set | status: open -> closed resolution: fixed |
| 2013-11-22 16:08:38 | python-dev | set | messages: + msg203793 |
| 2013-11-22 15:03:34 | barry | set | assignee: barry |
| 2013-11-22 10:58:48 | vstinner | set | status: closed -> open nosy:
+ vstinner resolution: fixed -> (no value) |
| 2013-11-22 01:12:14 | barry | set | status: open -> closed resolution: fixed |
| 2013-11-21 23:57:49 | python-dev | set | nosy:
+ python-dev messages: + msg203701 |
| 2013-11-11 20:01:16 | barry | set | messages:
+ msg202650 title: SO configuration variable should be deprecated in 3.4 -> "SO" config var not getting set |
| 2013-11-11 19:57:39 | barry | set | messages: + msg202649 |
| 2013-11-11 19:56:30 | barry | set | title: "SO" config var not getting set -> SO configuration variable should be deprecated in 3.4 |
| 2013-11-11 19:56:03 | barry | set | files:
+ issue19555.txt messages: + msg202648 |
| 2013-11-11 18:27:26 | Marc.Abramowitz | set | messages: + msg202639 |
| 2013-11-11 18:22:04 | barry | set | nosy:
+ doko |
| 2013-11-11 18:21:08 | barry | set | messages: + msg202638 |
| 2013-11-11 18:19:15 | barry | set | nosy:
+ barry messages: + msg202637 |
| 2013-11-11 17:58:02 | brett.cannon | set | assignee: eric.araujo -> (no value) nosy: - tarek, eric.araujo |
| 2013-11-11 17:29:57 | Marc.Abramowitz | create | |

