[MacPorts] #61282: python39 @3.9.0+universal does not work

MacPorts noreply at macports.org
Wed Oct 7 01:26:11 UTC 2020


#61282: python39 @3.9.0+universal does not work
------------------------+----------------------
 Reporter:  ryandesign  |      Owner:  jmroot
     Type:  defect      |     Status:  assigned
 Priority:  Normal      |  Milestone:
Component:  ports       |    Version:  2.6.99
 Keywords:              |       Port:  python39
------------------------+----------------------
 python39 installs with or without the universal variant, but when
 installed with the universal variant, it doesn't work. This is a
 regression from python38 and earlier versions which work fine universal or
 not.

 For example when python39 is installed universal, py39-setuptools fails to
 build:

 {{{
 Traceback (most recent call last):
   File
 "/opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py",
 line 73, in <module>
     import msvcrt
 ModuleNotFoundError: No module named 'msvcrt'
 During handling of the above exception, another exception occurred:
 Traceback (most recent call last):
   File "/opt/local/var/macports/build/_Users_rschmidt_macports_macports-
 ports-ryandesign-fork_python_py-
 setuptools/py39-setuptools/work/setuptools-50.3.0/setup.py", line 10, in
 <module>
     import setuptools
   File "/opt/local/var/macports/build/_Users_rschmidt_macports_macports-
 ports-ryandesign-fork_python_py-
 setuptools/py39-setuptools/work/setuptools-50.3.0/setuptools/__init__.py",
 line 10, in <module>
     import distutils.core
   File
 "/opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/core.py",
 line 16, in <module>
     from distutils.dist import Distribution
   File
 "/opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/dist.py",
 line 19, in <module>
     from distutils.util import check_environ, strtobool, rfc822_escape
   File
 "/opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/util.py",
 line 14, in <module>
     from distutils.spawn import spawn
   File
 "/opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/spawn.py",
 line 11, in <module>
     import subprocess
   File
 "/opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py",
 line 78, in <module>
     import _posixsubprocess
 ModuleNotFoundError: No module named '_posixsubprocess'
 }}}

 This can be reproduced easily at the command line:

 {{{
 $ python3.9
 Python 3.9.0 (default, Oct  6 2020, 19:05:10)
 [Clang 9.1.0 (clang-902.0.39.2)] on darwin
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import subprocess
 Traceback (most recent call last):
   File
 "/opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py",
 line 73, in <module>
     import msvcrt
 ModuleNotFoundError: No module named 'msvcrt'

 During handling of the above exception, another exception occurred:

 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File
 "/opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py",
 line 78, in <module>
     import _posixsubprocess
 ModuleNotFoundError: No module named '_posixsubprocess'
 >>> ^D
 }}}

 Examining the contents of python39, I see that when it is installed non-
 universal, it contains the file:

 {{{
 /opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9
 /lib-dynload/_posixsubprocess.cpython-39-darwin.so
 }}}

 But when it is installed universal, that file name contains "failed":

 {{{
 /opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9
 /lib-dynload/_posixsubprocess.cpython-39-darwin_failed.so
 }}}

 There are many other "failed" files in the universal install.

-- 
Ticket URL: <https://trac.macports.org/ticket/61282>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list