I also encountered this issue running on python 2.7 and Ubuntu 18.04. The root of the problem occurs at line 550 and 551: flags = sys.argv script_name = flags.pop(0) # first item is the filename I think with flags being a shallow copy of sys.argv the pop operation ends up emptying sys.argv as well, which causes problems later when matplotlib tries to make use of sys.argv. This can be fixed by changing to : flags = deepcopy(sys.argv)