(venv_win) PS C:\kg\stuff\WoA\test\python_packages\github\Pillow> pytest Tests ============================================================================== test session starts =============================================================================== platform win32 -- Python 3.9.7, pytest-6.2.5, py-1.10.0, pluggy-1.0.0 -------------------------------------------------------------------- Pillow 9.0.0.dev0 Python 3.9.7 (tags/v3.9.7:1016ef3, Aug 30 2021, 20:19:38) [MSC v.1929 64 bit (AMD64)] -------------------------------------------------------------------- Python modules loaded from c:\kg\stuff\WoA\test\venv_win\lib\site-packages\pillow-9.0.0.dev0-py3.9-win-amd64.egg\PIL Binary modules loaded from C:\Users\gabker01\AppData\Local\Python-Eggs\Python-Eggs\Cache\pillow-9.0.0.dev0-py3.9-win-amd64.egg-tmp\PIL -------------------------------------------------------------------- --- PIL CORE support ok, compiled for 9.0.0.dev0 --- TKINTER support ok, loaded 8.6 --- FREETYPE2 support ok, loaded 2.10.4 --- LITTLECMS2 support ok, loaded 2.12 --- WEBP support ok, loaded 1.2.1 --- WEBP Transparency support ok --- WEBPMUX support ok --- WEBP Animation support ok --- JPEG support ok, compiled for libjpeg-turbo 2.1.1 --- OPENJPEG (JPEG2000) support ok, loaded 2.4.0 --- ZLIB (PNG/ZIP) support ok, loaded 1.2.11 --- LIBTIFF support ok, loaded 4.3.0 *** RAQM (Bidirectional Text) support not installed --- LIBIMAGEQUANT (Quantization method) support ok, loaded 2.16.0 *** XCB (X protocol) support not installed -------------------------------------------------------------------- rootdir: C:\kg\stuff\WoA\test\python_packages\github\Pillow, configfile: setup.cfg, testpaths: Tests collected 1900 items / 4 skipped / 1896 selected Tests\test_000_sanity.py . [ 0%] Tests\test_binary.py ... [ 0%] Tests\test_bmp_reference.py ... [ 0%] Tests\test_box_blur.py .............. [ 1%] Tests\test_color_lut.py .......................... [ 2%] Tests\test_core_resources.py .............. [ 3%] Tests\test_decompression_bomb.py ....x.... [ 3%] Tests\test_features.py .............. [ 4%] Tests\test_file_apng.py .................... [ 5%] Tests\test_file_blp.py .......... [ 6%] Tests\test_file_bmp.py .......... [ 6%] Tests\test_file_bufrstub.py .... [ 6%] Tests\test_file_container.py .......... [ 7%] Tests\test_file_cur.py .. [ 7%] Tests\test_file_dcx.py ......... [ 7%] Tests\test_file_dds.py ...................... [ 9%] Tests\test_file_eps.py s.ssssss.ssss...s. [ 9%] Tests\test_file_fitsstub.py ...... [ 10%] Tests\test_file_fli.py ............. [ 10%] Tests\test_file_ftex.py .. [ 11%] Tests\test_file_gbr.py ... [ 11%] Tests\test_file_gd.py ... [ 11%] Tests\test_file_gif.py ..............ss........................................... [ 14%] Tests\test_file_gimpgradient.py .......... [ 15%] Tests\test_file_gimppalette.py .. [ 15%] Tests\test_file_gribstub.py .... [ 15%] Tests\test_file_hdf5stub.py .... [ 15%] Tests\test_file_icns.py .......... [ 16%] Tests\test_file_ico.py ................ [ 16%] Tests\test_file_im.py ............ [ 17%] Tests\test_file_iptc.py ..... [ 17%] Tests\test_file_jpeg.py ......................................ss........................ [ 21%] Tests\test_file_jpeg2k.py .............................ssss.... [ 23%] Tests\test_file_libtiff.py ......................................................................... [ 26%] Tests\test_file_libtiff_small.py ... [ 27%] Tests\test_file_mcidas.py .. [ 27%] Tests\test_file_mpo.py .................. [ 28%] Tests\test_file_msp.py ....ss. [ 28%] Tests\test_file_palm.py .X.. [ 28%] Tests\test_file_pcd.py . [ 28%] Tests\test_file_pcx.py ............. [ 29%] Tests\test_file_pdf.py ............... [ 30%] Tests\test_file_pixar.py .. [ 30%] Tests\test_file_png.py ...................................................s [ 33%] Tests\test_file_ppm.py ....... [ 33%] Tests\test_file_psd.py ................. [ 34%] Tests\test_file_sgi.py .......... [ 34%] Tests\test_file_spider.py ................ [ 35%] Tests\test_file_sun.py ..s [ 35%] Tests\test_file_tar.py .... [ 36%] Tests\test_file_tga.py ........... [ 36%] Tests\test_file_tiff.py ..............................................................s. [ 40%] Tests\test_file_tiff_metadata.py ..................... [ 41%] Tests\test_file_wal.py . [ 41%] Tests\test_file_webp.py ............... [ 42%] Tests\test_file_webp_alpha.py .... [ 42%] Tests\test_file_webp_animated.py ...... [ 42%] Tests\test_file_webp_lossless.py . [ 42%] Tests\test_file_webp_metadata.py ....... [ 42%] Tests\test_file_wmf.py F..F. [ 43%] Tests\test_file_xbm.py ..... [ 43%] Tests\test_file_xpm.py ... [ 43%] Tests\test_file_xvthumb.py ... [ 43%] Tests\test_font_bdf.py .. [ 43%] Tests\test_font_leaks.py ss [ 44%] Tests\test_font_pcf.py ..... [ 44%] Tests\test_font_pcf_charsets.py ......... [ 44%] Tests\test_format_hsv.py .... [ 44%] Tests\test_format_lab.py ... [ 45%] Tests\test_image.py ..............s................................................. [ 48%] Tests\test_image_access.py ......sssssssssss..................F [ 50%] Tests\test_image_array.py .. [ 50%] Tests\test_image_convert.py .................. [ 51%] Tests\test_image_copy.py .. [ 51%] Tests\test_image_crop.py ...... [ 51%] Tests\test_image_draft.py ... [ 52%] Tests\test_image_entropy.py . [ 52%] Tests\test_image_filter.py ......... [ 52%] Tests\test_image_frombytes.py . [ 52%] Tests\test_image_fromqimage.py sssss [ 52%] Tests\test_image_getbands.py . [ 52%] Tests\test_image_getbbox.py .. [ 53%] Tests\test_image_getcolors.py .. [ 53%] Tests\test_image_getdata.py .. [ 53%] Tests\test_image_getextrema.py .. [ 53%] Tests\test_image_getim.py . [ 53%] Tests\test_image_getpalette.py . [ 53%] Tests\test_image_getprojection.py . [ 53%] Tests\test_image_histogram.py . [ 53%] Tests\test_image_load.py ..... [ 53%] Tests\test_image_mode.py .. [ 53%] Tests\test_image_paste.py ........... [ 54%] Tests\test_image_point.py .... [ 54%] Tests\test_image_putalpha.py ... [ 54%] Tests\test_image_putdata.py ....... [ 55%] Tests\test_image_putpalette.py ... [ 55%] Tests\test_image_quantize.py ........ [ 55%] Tests\test_image_reduce.py ............ [ 56%] Tests\test_image_resample.py .................xx................. [ 58%] Tests\test_image_resize.py ................ [ 59%] Tests\test_image_rotate.py .............. [ 59%] Tests\test_image_split.py ... [ 60%] Tests\test_image_thumbnail.py ........ [ 60%] Tests\test_image_tobitmap.py . [ 60%] Tests\test_image_tobytes.py . [ 60%] Tests\test_image_transform.py ........................................ [ 62%] Tests\test_image_transpose.py ........ [ 63%] Tests\test_imagechops.py .............................. [ 64%] Tests\test_imagecms.py ............................ [ 66%] Tests\test_imagecolor.py ..... [ 66%] Tests\test_imagedraw.py ........................................................................s............................. [ 71%] Tests\test_imagedraw2.py ................ [ 72%] Tests\test_imageenhance.py ... [ 72%] Tests\test_imagefile.py ................ [ 73%] Tests\test_imagefont.py .......................................ss.......................................sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 81%] sssssssssssss.. [ 82%] Tests\test_imagefontctl.py ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 86%] Tests\test_imagegrab.py .s.s... [ 86%] Tests\test_imagemath.py ...................... [ 87%] Tests\test_imagemorph.py .................. [ 88%] Tests\test_imageops.py ........................ [ 90%] Tests\test_imageops_usm.py ..... [ 90%] Tests\test_imagepalette.py .............. [ 91%] Tests\test_imagepath.py ........... [ 91%] Tests\test_imageqt.py sss [ 91%] Tests\test_imagesequence.py ........ [ 92%] Tests\test_imageshow.py ....s..s [ 92%] Tests\test_imagestat.py ... [ 92%] Tests\test_imagetk.py .... [ 93%] Tests\test_imagewin.py ........ [ 93%] Tests\test_imagewin_pointers.py . [ 93%] Tests\test_lib_image.py . [ 93%] Tests\test_lib_pack.py .................................... [ 95%] Tests\test_locale.py . [ 95%] Tests\test_main.py . [ 95%] Tests\test_map.py ... [ 95%] Tests\test_mode_i16.py ... [ 95%] Tests\test_numpy.py ............. [ 96%] Tests\test_pdfparser.py .... [ 96%] Tests\test_pickle.py ............... [ 97%] Tests\test_psdraw.py ... [ 97%] Tests\test_qt_image_qapplication.py s [ 97%] Tests\test_qt_image_toqimage.py s [ 97%] Tests\test_sgi_crash.py ........... [ 98%] Tests\test_shell_injection.py ssss [ 98%] Tests\test_tiff_crashes.py ss...........s. [ 99%] Tests\test_tiff_ifdrational.py .... [ 99%] Tests\test_util.py ...... [ 99%] Tests\test_webp_leaks.py s [100%] ==================================================================================== FAILURES ==================================================================================== _________________________________________________________________________________ test_load_raw __________________________________________________________________________________ def test_load_raw(): # Test basic EMF open and rendering with Image.open("Tests/images/drawing.emf") as im: if hasattr(Image.core, "drawwmf"): # Currently, support for WMF/EMF is Windows-only im.load() # Compare to reference rendering assert_image_similar_tofile(im, "Tests/images/drawing_emf_ref.png", 0) # Test basic WMF open and rendering with Image.open("Tests/images/drawing.wmf") as im: if hasattr(Image.core, "drawwmf"): # Currently, support for WMF/EMF is Windows-only im.load() # Compare to reference rendering > assert_image_similar_tofile(im, "Tests/images/drawing_wmf_ref.png", 2.0) Tests\test_file_wmf.py:24: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Tests\helper.py:141: in assert_image_similar_tofile assert_image_similar(a, img, epsilon, msg) Tests\helper.py:134: in assert_image_similar raise e _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ a = , b = , epsilon = 2.0, msg = None def assert_image_similar(a, b, epsilon, msg=None): assert a.mode == b.mode, msg or f"got mode {repr(a.mode)}, expected {repr(b.mode)}" assert a.size == b.size, msg or f"got size {repr(a.size)}, expected {repr(b.size)}" a, b = convert_to_comparable(a, b) diff = 0 for ach, bch in zip(a.split(), b.split()): chdiff = ImageMath.eval("abs(a - b)", a=ach, b=bch).convert("L") diff += sum(i * num for i, num in enumerate(chdiff.histogram())) ave_diff = diff / (a.size[0] * a.size[1]) try: > assert epsilon >= ave_diff, ( (msg or "") + f" average pixel value difference {ave_diff:.4f} > epsilon {epsilon:.4f}" ) E AssertionError: average pixel value difference 2.0479 > epsilon 2.0000 E assert 2.0 >= 2.0478881618084475 Tests\helper.py:123: AssertionError _______________________________________________________________________________ test_load_set_dpi ________________________________________________________________________________ def test_load_set_dpi(): with Image.open("Tests/images/drawing.wmf") as im: assert im.size == (82, 82) if hasattr(Image.core, "drawwmf"): im.load(144) assert im.size == (164, 164) > assert_image_similar_tofile(im, "Tests/images/drawing_wmf_ref_144.png", 2.1) Tests\test_file_wmf.py:60: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Tests\helper.py:141: in assert_image_similar_tofile assert_image_similar(a, img, epsilon, msg) Tests\helper.py:134: in assert_image_similar raise e _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ a = , b = , epsilon = 2.1, msg = None def assert_image_similar(a, b, epsilon, msg=None): assert a.mode == b.mode, msg or f"got mode {repr(a.mode)}, expected {repr(b.mode)}" assert a.size == b.size, msg or f"got size {repr(a.size)}, expected {repr(b.size)}" a, b = convert_to_comparable(a, b) diff = 0 for ach, bch in zip(a.split(), b.split()): chdiff = ImageMath.eval("abs(a - b)", a=ach, b=bch).convert("L") diff += sum(i * num for i, num in enumerate(chdiff.histogram())) ave_diff = diff / (a.size[0] * a.size[1]) try: > assert epsilon >= ave_diff, ( (msg or "") + f" average pixel value difference {ave_diff:.4f} > epsilon {epsilon:.4f}" ) E AssertionError: average pixel value difference 2.6547 > epsilon 2.1000 E assert 2.1 >= 2.6546698393813206 Tests\helper.py:123: AssertionError _________________________________________________________________________ TestEmbeddable.test_embeddable _________________________________________________________________________ self = , target_desc = 'executable', objects = ['embed_pil.obj'], output_filename = 'embed_pil.exe' output_dir = 'C:\\kg\\stuff\\WoA\\test\\python_packages\\github\\Pillow', libraries = [] library_dirs = ['C:\\Users\\gabker01\\AppData\\Local\\Programs\\Python\\Python39\\Include', 'C:\\Program Files (x86)\\Microsoft Visua...ndows Kits\\10\\lib\\10.0.19041.0\\ucrt\\x64', 'C:\\Program Files (x86)\\Windows Kits\\10\\lib\\10.0.19041.0\\um\\x64'] runtime_library_dirs = [], export_symbols = None, debug = 0, extra_preargs = None, extra_postargs = None, build_temp = '', target_lang = None def link(self, target_desc, objects, output_filename, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None): if not self.initialized: self.initialize() objects, output_dir = self._fix_object_args(objects, output_dir) fixed_args = self._fix_lib_args(libraries, library_dirs, runtime_library_dirs) libraries, library_dirs, runtime_library_dirs = fixed_args if runtime_library_dirs: self.warn("I don't know what to do with 'runtime_library_dirs': " + str(runtime_library_dirs)) lib_opts = gen_lib_options(self, library_dirs, runtime_library_dirs, libraries) if output_dir is not None: output_filename = os.path.join(output_dir, output_filename) if self._need_link(objects, output_filename): ldflags = self._ldflags[target_desc, debug] export_opts = ["/EXPORT:" + sym for sym in (export_symbols or [])] ld_args = (ldflags + lib_opts + export_opts + objects + ['/OUT:' + output_filename]) # The MSVC linker generates .lib and .exp files, which cannot be # suppressed by any linker switches. The .lib files may even be # needed! Make sure they are generated in the temporary build # directory. Since they have different names for debug and release # builds, they can go into the same directory. build_temp = os.path.dirname(objects[0]) if export_symbols is not None: (dll_name, dll_ext) = os.path.splitext( os.path.basename(output_filename)) implib_file = os.path.join( build_temp, self.library_filename(dll_name)) ld_args.append ('/IMPLIB:' + implib_file) if extra_preargs: ld_args[:0] = extra_preargs if extra_postargs: ld_args.extend(extra_postargs) output_dir = os.path.dirname(os.path.abspath(output_filename)) self.mkpath(output_dir) try: log.debug('Executing "%s" %s', self.linker, ' '.join(ld_args)) > self.spawn([self.linker] + ld_args) C:\Users\gabker01\AppData\Local\Programs\Python\Python39\lib\distutils\_msvccompiler.py:497: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cmd = ['C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.29.30037\\bin\\HostX86\\x64\\...TCG', '/MANIFEST:EMBED,ID=1', '/LIBPATH:C:\\Users\\gabker01\\AppData\\Local\\Programs\\Python\\Python39\\Include', ...] def spawn(self, cmd): old_path = os.getenv('path') try: os.environ['path'] = self._paths > return super().spawn(cmd) C:\Users\gabker01\AppData\Local\Programs\Python\Python39\lib\distutils\_msvccompiler.py:507: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = cmd = ['C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.29.30037\\bin\\HostX86\\x64\\...TCG', '/MANIFEST:EMBED,ID=1', '/LIBPATH:C:\\Users\\gabker01\\AppData\\Local\\Programs\\Python\\Python39\\Include', ...] def spawn(self, cmd): > spawn(cmd, dry_run=self.dry_run) C:\Users\gabker01\AppData\Local\Programs\Python\Python39\lib\distutils\ccompiler.py:910: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cmd = 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.29.30037\\bin\\HostX86\\x64\\link.exe', search_path = 1, verbose = 0, dry_run = 0 def spawn(cmd, search_path=1, verbose=0, dry_run=0): """Run another program, specified as a command list 'cmd', in a new process. 'cmd' is just the argument list for the new process, ie. cmd[0] is the program to run and cmd[1:] are the rest of its arguments. There is no way to run a program with a name different from that of its executable. If 'search_path' is true (the default), the system's executable search path will be used to find the program; otherwise, cmd[0] must be the exact path to the executable. If 'dry_run' is true, the command will not actually be run. Raise DistutilsExecError if running the program fails in any way; just return on success. """ # cmd is documented as a list, but just in case some code passes a tuple # in, protect our %-formatting code against horrible death cmd = list(cmd) log.info(' '.join(cmd)) if dry_run: return if search_path: executable = find_executable(cmd[0]) if executable is not None: cmd[0] = executable env = None if sys.platform == 'darwin': global _cfg_target, _cfg_target_split if _cfg_target is None: from distutils import sysconfig _cfg_target = sysconfig.get_config_var( 'MACOSX_DEPLOYMENT_TARGET') or '' if _cfg_target: _cfg_target_split = [int(x) for x in _cfg_target.split('.')] if _cfg_target: # Ensure that the deployment target of the build process is not # less than 10.3 if the interpreter was built for 10.3 or later. # This ensures extension modules are built with correct # compatibility values, specifically LDSHARED which can use # '-undefined dynamic_lookup' which only works on >= 10.3. cur_target = os.environ.get('MACOSX_DEPLOYMENT_TARGET', _cfg_target) cur_target_split = [int(x) for x in cur_target.split('.')] if _cfg_target_split[:2] >= [10, 3] and cur_target_split[:2] < [10, 3]: my_msg = ('$MACOSX_DEPLOYMENT_TARGET mismatch: ' 'now "%s" but "%s" during configure;' 'must use 10.3 or later' % (cur_target, _cfg_target)) raise DistutilsPlatformError(my_msg) env = dict(os.environ, MACOSX_DEPLOYMENT_TARGET=cur_target) try: proc = subprocess.Popen(cmd, env=env) proc.wait() exitcode = proc.returncode except OSError as exc: if not DEBUG: cmd = cmd[0] raise DistutilsExecError( "command %r failed: %s" % (cmd, exc.args[-1])) from exc if exitcode: if not DEBUG: cmd = cmd[0] > raise DistutilsExecError( "command %r failed with exit code %s" % (cmd, exitcode)) E distutils.errors.DistutilsExecError: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.29.30037\\bin\\HostX86\\x64\\link.exe' failed with exit code 1104 C:\Users\gabker01\AppData\Local\Programs\Python\Python39\lib\distutils\spawn.py:91: DistutilsExecError During handling of the above exception, another exception occurred: self = @pytest.mark.skipif( not is_win32() or on_ci(), reason="Failing on AppVeyor / GitHub Actions when run from subprocess, " "not from shell", ) def test_embeddable(self): with open("embed_pil.c", "w") as fh: fh.write( """ #include "Python.h" int main(int argc, char* argv[]) { char *home = "%s"; wchar_t *whome = Py_DecodeLocale(home, NULL); Py_SetPythonHome(whome); Py_InitializeEx(0); Py_DECREF(PyImport_ImportModule("PIL.Image")); Py_Finalize(); Py_InitializeEx(0); Py_DECREF(PyImport_ImportModule("PIL.Image")); Py_Finalize(); PyMem_RawFree(whome); return 0; } """ % sys.prefix.replace("\\", "\\\\") ) compiler = new_compiler() compiler.add_include_dir(sysconfig.get_config_var("INCLUDEPY")) libdir = sysconfig.get_config_var("LIBDIR") or sysconfig.get_config_var( "INCLUDEPY" ).replace("include", "libs") compiler.add_library_dir(libdir) objects = compiler.compile(["embed_pil.c"]) > compiler.link_executable(objects, "embed_pil") Tests\test_image_access.py:439: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ C:\Users\gabker01\AppData\Local\Programs\Python\Python39\lib\distutils\ccompiler.py:731: in link_executable self.link(CCompiler.EXECUTABLE, objects, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , target_desc = 'executable', objects = ['embed_pil.obj'], output_filename = 'embed_pil.exe' output_dir = 'C:\\kg\\stuff\\WoA\\test\\python_packages\\github\\Pillow', libraries = [] library_dirs = ['C:\\Users\\gabker01\\AppData\\Local\\Programs\\Python\\Python39\\Include', 'C:\\Program Files (x86)\\Microsoft Visua...ndows Kits\\10\\lib\\10.0.19041.0\\ucrt\\x64', 'C:\\Program Files (x86)\\Windows Kits\\10\\lib\\10.0.19041.0\\um\\x64'] runtime_library_dirs = [], export_symbols = None, debug = 0, extra_preargs = None, extra_postargs = None, build_temp = '', target_lang = None def link(self, target_desc, objects, output_filename, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None): if not self.initialized: self.initialize() objects, output_dir = self._fix_object_args(objects, output_dir) fixed_args = self._fix_lib_args(libraries, library_dirs, runtime_library_dirs) libraries, library_dirs, runtime_library_dirs = fixed_args if runtime_library_dirs: self.warn("I don't know what to do with 'runtime_library_dirs': " + str(runtime_library_dirs)) lib_opts = gen_lib_options(self, library_dirs, runtime_library_dirs, libraries) if output_dir is not None: output_filename = os.path.join(output_dir, output_filename) if self._need_link(objects, output_filename): ldflags = self._ldflags[target_desc, debug] export_opts = ["/EXPORT:" + sym for sym in (export_symbols or [])] ld_args = (ldflags + lib_opts + export_opts + objects + ['/OUT:' + output_filename]) # The MSVC linker generates .lib and .exp files, which cannot be # suppressed by any linker switches. The .lib files may even be # needed! Make sure they are generated in the temporary build # directory. Since they have different names for debug and release # builds, they can go into the same directory. build_temp = os.path.dirname(objects[0]) if export_symbols is not None: (dll_name, dll_ext) = os.path.splitext( os.path.basename(output_filename)) implib_file = os.path.join( build_temp, self.library_filename(dll_name)) ld_args.append ('/IMPLIB:' + implib_file) if extra_preargs: ld_args[:0] = extra_preargs if extra_postargs: ld_args.extend(extra_postargs) output_dir = os.path.dirname(os.path.abspath(output_filename)) self.mkpath(output_dir) try: log.debug('Executing "%s" %s', self.linker, ' '.join(ld_args)) self.spawn([self.linker] + ld_args) except DistutilsExecError as msg: > raise LinkError(msg) E distutils.errors.LinkError: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.29.30037\\bin\\HostX86\\x64\\link.exe' failed with exit code 1104 C:\Users\gabker01\AppData\Local\Programs\Python\Python39\lib\distutils\_msvccompiler.py:499: LinkError ------------------------------------------------------------------------------ Captured stdout call ------------------------------------------------------------------------------ embed_pil.c LINK : fatal error LNK1104: cannot open file 'python39.lib' ================================================================================ warnings summary ================================================================================ Tests\test_file_eps.py:283 C:\kg\stuff\WoA\test\python_packages\github\Pillow\Tests\test_file_eps.py:283: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.timeout(timeout=5) Tests\test_file_fli.py:135 C:\kg\stuff\WoA\test\python_packages\github\Pillow\Tests\test_file_fli.py:135: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.timeout(timeout=3) Tests\test_file_pdf.py:315 C:\kg\stuff\WoA\test\python_packages\github\Pillow\Tests\test_file_pdf.py:315: PytestUnknownMarkWarning: Unknown pytest.mark.timeout - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html @pytest.mark.timeout(1) -- Docs: https://docs.pytest.org/en/stable/warnings.html ============================================================================ short test summary info ============================================================================= SKIPPED [1] Tests\test_file_fpx.py:5: olefile not installed SKIPPED [1] Tests\test_file_mic.py:7: olefile not installed SKIPPED [1] Tests\test_pyroma.py:5: Pyroma not installed SKIPPED [1] Tests\oss-fuzz\test_fuzzers.py:11: Fuzzer is linux only SKIPPED [1] Tests\test_file_eps.py:32: Ghostscript not available SKIPPED [1] Tests\test_file_eps.py:68: Ghostscript not available SKIPPED [1] Tests\test_file_eps.py:88: Ghostscript not available SKIPPED [1] Tests\test_file_eps.py:99: Ghostscript not available SKIPPED [1] Tests\test_file_eps.py:110: Ghostscript not available SKIPPED [1] Tests\test_file_eps.py:118: Ghostscript not available SKIPPED [1] Tests\test_file_eps.py:126: Ghostscript not available SKIPPED [1] Tests\test_file_eps.py:147: Ghostscript not available SKIPPED [1] Tests\test_file_eps.py:169: Ghostscript not available SKIPPED [1] Tests\test_file_eps.py:191: Ghostscript not available SKIPPED [1] Tests\test_file_eps.py:201: Ghostscript not available SKIPPED [1] Tests\test_file_eps.py:271: Ghostscript not available SKIPPED [1] Tests\test_file_gif.py:223: Netpbm not available SKIPPED [1] Tests\test_file_gif.py:234: Netpbm not available SKIPPED [1] Tests\test_file_jpeg.py:599: djpeg not available SKIPPED [1] Tests\test_file_jpeg.py:605: cjpeg not available SKIPPED [4] Tests\test_file_jpeg2k.py:281: Extra image files not installed SKIPPED [1] Tests\test_file_msp.py:58: Extra image files not installed SKIPPED [1] Tests\test_file_msp.py:72: Even More Extra image files not installed SKIPPED [1] Tests\test_file_png.py:770: Requires Unix or macOS SKIPPED [1] Tests\test_file_sun.py:35: Extra image files not installed SKIPPED [1] Tests\test_file_tiff.py:716: Extra image files not installed SKIPPED [1] Tests\test_font_leaks.py:20: Requires Unix or macOS SKIPPED [1] Tests\test_font_leaks.py:31: Requires Unix or macOS SKIPPED [1] Tests\test_image.py:195: Test requires opening tempfile twice SKIPPED [1] Tests\test_image_access.py:47: No CFFI SKIPPED [1] Tests\test_image_access.py:84: No CFFI SKIPPED [1] Tests\test_image_access.py:121: No CFFI SKIPPED [1] Tests\test_image_access.py:185: No CFFI SKIPPED [1] Tests\test_image_access.py:204: No CFFI SKIPPED [1] Tests\test_image_access.py:213: No CFFI SKIPPED [1] Tests\test_image_access.py:251: No CFFI SKIPPED [1] Tests\test_image_access.py:298: No CFFI SKIPPED [1] Tests\test_image_access.py:324: No CFFI SKIPPED [1] Tests\test_image_access.py:328: No CFFI SKIPPED [1] Tests\test_image_access.py:338: No CFFI SKIPPED [1] Tests\test_image_fromqimage.py:38: Qt bindings are not installed SKIPPED [1] Tests\test_image_fromqimage.py:43: Qt bindings are not installed SKIPPED [1] Tests\test_image_fromqimage.py:48: Qt bindings are not installed SKIPPED [1] Tests\test_image_fromqimage.py:53: Qt bindings are not installed SKIPPED [1] Tests\test_image_fromqimage.py:58: Qt bindings are not installed SKIPPED [1] Tests\test_imagedraw.py:974: failing SKIPPED [2] Tests\test_imagefont.py:491: requires Unix or macOS SKIPPED [2] Tests\test_imagefont.py:532: requires Unix or macOS SKIPPED [1] Tests\test_imagefont.py:39: raqm not available SKIPPED [1] Tests\test_imagefont.py:42: raqm not available SKIPPED [1] Tests\test_imagefont.py:58: raqm not available SKIPPED [1] Tests\test_imagefont.py:67: raqm not available SKIPPED [1] Tests\test_imagefont.py:78: raqm not available SKIPPED [1] Tests\test_imagefont.py:82: raqm not available SKIPPED [1] Tests\test_imagefont.py:91: raqm not available SKIPPED [1] Tests\test_imagefont.py:115: raqm not available SKIPPED [1] Tests\test_imagefont.py:123: raqm not available SKIPPED [1] Tests\test_imagefont.py:137: raqm not available SKIPPED [1] Tests\test_imagefont.py:148: raqm not available SKIPPED [6] Tests\test_imagefont.py:162: raqm not available SKIPPED [1] Tests\test_imagefont.py:193: raqm not available SKIPPED [1] Tests\test_imagefont.py:209: raqm not available SKIPPED [1] Tests\test_imagefont.py:237: raqm not available SKIPPED [1] Tests\test_imagefont.py:246: raqm not available SKIPPED [1] Tests\test_imagefont.py:253: raqm not available SKIPPED [1] Tests\test_imagefont.py:272: raqm not available SKIPPED [1] Tests\test_imagefont.py:282: raqm not available SKIPPED [1] Tests\test_imagefont.py:291: raqm not available SKIPPED [1] Tests\test_imagefont.py:312: raqm not available SKIPPED [1] Tests\test_imagefont.py:332: raqm not available SKIPPED [1] Tests\test_imagefont.py:345: raqm not available SKIPPED [1] Tests\test_imagefont.py:358: raqm not available SKIPPED [1] Tests\test_imagefont.py:368: raqm not available SKIPPED [1] Tests\test_imagefont.py:380: raqm not available SKIPPED [1] Tests\test_imagefont.py:391: raqm not available SKIPPED [1] Tests\test_imagefont.py:402: raqm not available SKIPPED [1] Tests\test_imagefont.py:412: raqm not available SKIPPED [1] Tests\test_imagefont.py:417: raqm not available SKIPPED [1] Tests\test_imagefont.py:430: raqm not available SKIPPED [1] Tests\test_imagefont.py:436: raqm not available SKIPPED [1] Tests\test_imagefont.py:446: raqm not available SKIPPED [1] Tests\test_imagefont.py:453: raqm not available SKIPPED [1] Tests\test_imagefont.py:564: raqm not available SKIPPED [1] Tests\test_imagefont.py:588: raqm not available SKIPPED [1] Tests\test_imagefont.py:603: raqm not available SKIPPED [1] Tests\test_imagefont.py:615: raqm not available SKIPPED [1] Tests\test_imagefont.py:685: raqm not available SKIPPED [1] Tests\test_imagefont.py:709: raqm not available SKIPPED [1] Tests\test_imagefont.py:729: raqm not available SKIPPED [8] Tests\test_imagefont.py:736: raqm not available SKIPPED [11] Tests\test_imagefont.py:777: raqm not available SKIPPED [1] Tests\test_imagefont.py:815: raqm not available SKIPPED [4] Tests\test_imagefont.py:844: raqm not available SKIPPED [1] Tests\test_imagefont.py:862: raqm not available SKIPPED [1] Tests\test_imagefont.py:878: raqm not available SKIPPED [1] Tests\test_imagefont.py:889: raqm not available SKIPPED [1] Tests\test_imagefont.py:907: raqm not available SKIPPED [1] Tests\test_imagefont.py:927: raqm not available SKIPPED [1] Tests\test_imagefont.py:945: raqm not available SKIPPED [1] Tests\test_imagefont.py:963: raqm not available SKIPPED [1] Tests\test_imagefont.py:978: raqm not available SKIPPED [1] Tests\test_imagefontctl.py:13: raqm not available SKIPPED [1] Tests\test_imagefontctl.py:21: raqm not available SKIPPED [1] Tests\test_imagefontctl.py:32: raqm not available SKIPPED [1] Tests\test_imagefontctl.py:43: raqm not available SKIPPED [1] Tests\test_imagefontctl.py:63: raqm not available SKIPPED [1] Tests\test_imagefontctl.py:74: raqm not available SKIPPED [1] Tests\test_imagefontctl.py:85: raqm not available SKIPPED [1] Tests\test_imagefontctl.py:96: raqm not available SKIPPED [1] Tests\test_imagefontctl.py:111: raqm not available SKIPPED [1] Tests\test_imagefontctl.py:134: raqm not available SKIPPED [1] Tests\test_imagefontctl.py:147: raqm not available SKIPPED [1] Tests\test_imagefontctl.py:158: raqm not available SKIPPED [1] Tests\test_imagefontctl.py:175: raqm not available SKIPPED [1] Tests\test_imagefontctl.py:186: raqm not available SKIPPED [10] Tests\test_imagefontctl.py:197: raqm not available SKIPPED [16] Tests\test_imagefontctl.py:224: raqm not available SKIPPED [4] Tests\test_imagefontctl.py:250: raqm not available SKIPPED [26] Tests\test_imagefontctl.py:304: raqm not available SKIPPED [9] Tests\test_imagefontctl.py:324: raqm not available SKIPPED [1] Tests\test_imagefontctl.py:356: raqm not available SKIPPED [1] Tests\test_imagegrab.py:27: xcb not available SKIPPED [1] Tests\test_imagegrab.py:50: xcb not available SKIPPED [1] Tests\test_imageqt.py:15: Qt bindings are not installed SKIPPED [1] Tests\test_imageqt.py:44: Qt bindings are not installed SKIPPED [1] Tests\test_imageqt.py:49: Qt bindings are not installed SKIPPED [1] Tests\test_imageshow.py:44: Only run on CIs; hangs on Windows CIs SKIPPED [1] Tests\test_imageshow.py:72: IPython not installed SKIPPED [1] Tests\test_qt_image_qapplication.py:50: Qt bindings are not installed SKIPPED [1] Tests\test_qt_image_toqimage.py:15: Qt bindings are not installed SKIPPED [1] Tests\test_shell_injection.py:25: djpeg not available SKIPPED [1] Tests\test_shell_injection.py:34: cjpeg not available SKIPPED [1] Tests\test_shell_injection.py:39: Netpbm not available SKIPPED [1] Tests\test_shell_injection.py:45: Netpbm not available SKIPPED [3] Tests\test_tiff_crashes.py:50: test image not found SKIPPED [1] Tests\test_webp_leaks.py:16: Requires Unix or macOS XFAIL Tests/test_decompression_bomb.py::TestDecompressionBomb::test_exception_ico different exception XFAIL Tests/test_image_resample.py::TestCoreResampleAlphaCorrect::test_levels_rgba Current implementation isn't precise enough XFAIL Tests/test_image_resample.py::TestCoreResampleAlphaCorrect::test_levels_la Current implementation isn't precise enough XPASS Tests/test_file_palm.py::test_p_mode Palm P image is wrong FAILED Tests/test_file_wmf.py::test_load_raw - AssertionError: average pixel value difference 2.0479 > epsilon 2.0000 FAILED Tests/test_file_wmf.py::test_load_set_dpi - AssertionError: average pixel value difference 2.6547 > epsilon 2.1000 FAILED Tests/test_image_access.py::TestEmbeddable::test_embeddable - distutils.errors.LinkError: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\... ============================================ 3 failed, 1669 passed, 228 skipped, 3 xfailed, 1 xpassed, 3 warnings in 76.50s (0:01:16) ============================================