Error on import matplotlib.pyplot (on Anaconda3 for Windows 10 Home 64-bit PC)

后端 未结 2 2128
时光说笑
时光说笑 2020-12-08 15:57

I recently installed \"Anaconda3 for Windows v2.4.0\" on my Windows 10 Home (64 bit) machine.

(I downloaded the Windows 64-bit Graphical Installer \"Anaconda3-2.4.0-

2条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-08 16:25

    This is a bug in python, not matplotlib.

    The issue is that winreg.EnumValue is not cutting string values at their length properly for some reason, and strings will include null characters which os.path.abspath is not able to process.

    The registry entry where this happens is at SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts. Despite this not being matplotlib's fault we can still temporarily patch it so that it ends the string at '\0'. In font_manager.py, patch line 310 in the win32InstalledFonts() function to:

    key, direc, any = winreg.EnumValue( local, j)
    if not is_string_like(direc):
        continue
    if not os.path.dirname(direc):
        direc = os.path.join(directory, direc)
    direc = direc.split('\0', 1)[0]
    

提交回复
热议问题