Project Status

There is support for producing 64-bit CPython distributions for Windows, macOS, and Linux. All distributions are highly self-contained and have limited shared library dependencies.

Planned and features include:

  • Static/dynamic linking toggles for dependencies

  • Support for configuring which toolchain/version to use

  • Support for BSDs

  • Support for iOS and/or Android

  • Support for Python distributions that aren’t CPython

Test Failures

This repository contains test-distribution.py script that can be used to run the Python test harness from a distribution archive.

Here, we track the various known failures when running test-distribution.py /path/to/distribution.tar.zst -u all.

test__locale

Known failing on: Windows

This test fails as follows:

======================================================================
ERROR: test_float_parsing (test.test__locale._LocaleTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\gps\AppData\Local\Temp\tmpjx7a33kd\python\install\lib\test\test__locale.py", line 184, in test_float_parsing
    if localeconv()['decimal_point'] != '.':
UnicodeDecodeError: 'locale' codec can't decode byte 0xa0 in position 0: decoding error

======================================================================
ERROR: test_lc_numeric_localeconv (test.test__locale._LocaleTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\gps\AppData\Local\Temp\tmpjx7a33kd\python\install\lib\test\test__locale.py", line 130, in test_lc_numeric_localeconv
    formatting = localeconv()
UnicodeDecodeError: 'locale' codec can't decode byte 0xa0 in position 0: decoding error

----------------------------------------------------------------------

test_locale

Known failing on: Windows

This test fails on Windows:

======================================================================
ERROR: test_getsetlocale_issue1813 (test.test_locale.TestMiscellaneous)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\gps\AppData\Local\Temp\tmp8m94v2m5\python\install\lib\test\test_locale.py", line 567, in test_getsetlocale_issue1813
    locale.setlocale(locale.LC_CTYPE, loc)
  File "C:\Users\gps\AppData\Local\Temp\tmp8m94v2m5\python\install\lib\locale.py", line 608, in setlocale
    return _setlocale(category, locale)
locale.Error: unsupported locale setting

----------------------------------------------------------------------

test_ssl

Known failing on: Linux

When building against LibreSSL instead of OpenSSL, test_ssl fails in the following manner:

======================================================================
FAIL: test_openssl_version (test.test_ssl.BasicSocketTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/tmpinhxfy8t/python/install/lib/python3.7/test/test_ssl.py", line 573, in test_openssl_version
    (s, t, hex(n)))
AssertionError: False is not true : ('LibreSSL 3.0.2', (2, 0, 0, 0, 0), '0x20000000')

----------------------------------------------------------------------

This seems to be the test assuming the existence of OpenSSL and not coping with LibreSSl. This failure seems pretty benign.

test_subprocess

Known Failing on: Linux

This fails in the following manner:

test_executable_without_cwd (test.test_subprocess.ProcessTestCaseNoPoll) ... Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: initfsencoding: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'

Current thread 0x00007fd77c231740 (most recent call first):
FAIL

======================================================================
FAIL: test_executable_without_cwd (test.test_subprocess.ProcessTestCaseNoPoll)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/tmp8hef0kr4/python/install/lib/python3.7/test/test_subprocess.py", line 436, in test_executable_without_cwd
    executable=sys.executable)
  File "/tmp/tmp8hef0kr4/python/install/lib/python3.7/test/test_subprocess.py", line 355, in _assert_cwd
    self.assertEqual(47, p.returncode)
AssertionError: 47 != -6

We’re unsure what is going on here. The error from initfsencoding is what happens when the first import during Py_Initialize() fails. So it appears the test somehow can’t locate the Python standard library.

test_tk

Known Failing on: Linux

This fails in the following manner:

======================================================================
FAIL: test_from (tkinter.test.test_tkinter.test_widgets.ScaleTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/tmpoqqjd5gi/python/install/lib/python3.7/tkinter/test/test_tkinter/test_widgets.py", line 867, in test_from
    self.checkFloatParam(widget, 'from', 100, 14.9, 15.1, conv=float_round)
  File "/tmp/tmpoqqjd5gi/python/install/lib/python3.7/tkinter/test/widget_tests.py", line 106, in checkFloatParam
    self.checkParam(widget, name, value, conv=conv, **kwargs)
  File "/tmp/tmpoqqjd5gi/python/install/lib/python3.7/tkinter/test/widget_tests.py", line 63, in checkParam
    self.assertEqual2(widget[name], expected, eq=eq)
  File "/tmp/tmpoqqjd5gi/python/install/lib/python3.7/tkinter/test/widget_tests.py", line 47, in assertEqual2
    self.assertEqual(actual, expected, msg)
AssertionError: 14.9 != 15.0

This seems like a minor issue and might be a bug in the test itself.

test_winconsoleio

This fails as follows:

======================================================================
ERROR: test_ctrl_z (test.test_winconsoleio.WindowsConsoleIOTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\gps\AppData\Local\Temp\tmp8m94v2m5\python\install\lib\test\test_winconsoleio.py", line 190, in test_ctrl_z
    a, b = stdin.read(1), stdin.readall()
OSError: [WinError 87] The parameter is incorrect

======================================================================
ERROR: test_input (test.test_winconsoleio.WindowsConsoleIOTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\gps\AppData\Local\Temp\tmp8m94v2m5\python\install\lib\test\test_winconsoleio.py", line 144, in test_input
    self.assertStdinRoundTrip('abc123')
  File "C:\Users\gps\AppData\Local\Temp\tmp8m94v2m5\python\install\lib\test\test_winconsoleio.py", line 137, in assertStdinRoundTrip
    actual = input()
OSError: [WinError 87] The parameter is incorrect

======================================================================
FAIL: test_partial_reads (test.test_winconsoleio.WindowsConsoleIOTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\gps\AppData\Local\Temp\tmp8m94v2m5\python\install\lib\test\test_winconsoleio.py", line 166, in test_partial_reads
    self.assertEqual(actual, expected, 'stdin.read({})'.format(read_count))
AssertionError: b'\r\n' != b'\xcf\xbc\xd1\x9e\xd0\xa2\xce\xbb\xd0\xa4\xd0\x99\r\n' : stdin.read(1)

======================================================================
FAIL: test_partial_surrogate_reads (test.test_winconsoleio.WindowsConsoleIOTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\gps\AppData\Local\Temp\tmp8m94v2m5\python\install\lib\test\test_winconsoleio.py", line 183, in test_partial_surrogate_reads
    self.assertEqual(actual, expected, 'stdin.read({})'.format(read_count))
AssertionError: b'\xc3\x84\r\n' != b'\xf4\x81\xbf\xbf\xf4\x81\x80\x81\r\n' : stdin.read(1)

----------------------------------------------------------------------

Ran 10 tests in 0.006s

FAILED (failures=2, errors=2)
test test_winconsoleio failed
0:00:00 Re-running test__locale in verbose mode
test_float_parsing (test.test__locale._LocaleTests) ... ERROR
test_lc_numeric_basic (test.test__locale._LocaleTests) ... skipped 'nl_langinfo is not available'
test_lc_numeric_localeconv (test.test__locale._LocaleTests) ... ERROR
test_lc_numeric_nl_langinfo (test.test__locale._LocaleTests) ... skipped 'nl_langinfo is not available'

======================================================================
ERROR: test_float_parsing (test.test__locale._LocaleTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\gps\AppData\Local\Temp\tmp8m94v2m5\python\install\lib\test\test__locale.py", line 184, in test_float_parsing
    if localeconv()['decimal_point'] != '.':
UnicodeDecodeError: 'locale' codec can't decode byte 0xa0 in position 0: decoding error

======================================================================
ERROR: test_lc_numeric_localeconv (test.test__locale._LocaleTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\gps\AppData\Local\Temp\tmp8m94v2m5\python\install\lib\test\test__locale.py", line 130, in test_lc_numeric_localeconv
    formatting = localeconv()
UnicodeDecodeError: 'locale' codec can't decode byte 0xa0 in position 0: decoding error

----------------------------------------------------------------------

Test Skips

Linux

The following tests are skipped on Linux:

test_asdl_parser

test irrelevant for an installed Python

test_clinic

install/lib/Tools/clinic’ path does not exist

test_dbm_gnu

No module named ‘_gdbm’

test_devpoll

test works only on Solaris OS family

test_gdb

test_gdb only works on source builds at the moment.

test_kqueue

test works only on BSD

test_msilib

No module named ‘msilib’

test_ossaudiodev

[Errno 2] No such file or directory: ‘/dev/dsp’

test_startfile

object <module ‘os’ from ‘…/install/lib/python3.7/os.py’> has no attribute ‘startfile’

test_winconsoleio

test only relevant on win32

test_winreg

No module named ‘winreg’

test_winsound

No module named ‘winsound’

test_zipfile64

test requires loads of disk-space bytes and a long time to run

macOS

The following tests are skipped on macOS:

test_asdl_parser

test irrelevant for an installed Python

test_clinic

python/install/lib/Tools/clinic’ path does not exist

test_dbm_gnu

No module named ‘_gdbm’

test_devpoll

test works only on Solaris OS family

test_epoll

test works only on Linux 2.6

test_gdb

Couldn’t find gdb on the path

test_msilib

No module named ‘msilib’

test_multiprocessing_fork

test may crash on macOS (bpo-33725)

test_nis

No module named ‘nis’

test_ossaudiodev

No module named ‘ossaudiodev’

test_spwd

No module named ‘spwd’

test_startfile

object <module ‘os’ from ‘…/install/lib/python3.7/os.py’> has no attribute ‘startfile’

test_tix

cannot run without OS X gui process

test_tk

cannot run without OS X gui process

test_ttk_guionly

cannot run without OS X gui process

test_winconsoleio

test only relevant on win32

test_winreg

No module named ‘winreg’

test_winsound

No module named ‘winsound’

test_zipfile64

test requires loads of disk-space bytes and a long time to run