Python 无法在Spyder中多次在pygal中将_呈现到_文件

Python 无法在Spyder中多次在pygal中将_呈现到_文件,python,anaconda,spyder,pygal,Python,Anaconda,Spyder,Pygal,短版 在Spyder中,如果我多次运行脚本,使用pygal的render_to_file保存映射,我会得到一个TypeError。第一次就可以了 详细版本 我试图在Python 3.6中使用pygal(2.4.0)保存一个映射,如下所示: from pygal.maps.world import World worldmap = World() worldmap.add('Random Places', ['mx', 'bz', 'ru', 'th', 'et']) worldmap.rend

短版
在Spyder中,如果我多次运行脚本,使用pygal的
render_to_file
保存映射,我会得到一个
TypeError
。第一次就可以了

详细版本
我试图在Python 3.6中使用pygal(2.4.0)保存一个映射,如下所示:

from pygal.maps.world import World

worldmap = World()
worldmap.add('Random Places', ['mx', 'bz', 'ru', 'th', 'et'])
worldmap.render_to_file('random_places.svg')
当我想从终端运行多少次(我在Ubuntu上)时,它工作得很好。当我第一次从Spyder(3.2)使用F5运行它时,它也可以正常工作。奇怪的是,当我尝试在Spyder中再次运行代码时,在它已经运行一次并正常工作之后,最后一行抛出了一个
TypeError
。它创建了一个空文件
random_places.svg
,但停止在那里

如果我重新启动内核(控制台->重新启动内核),它将不会再次错误运行。另外请注意,如果我运行上面的脚本,但添加了对
render_to_file
的第二个调用,它也可以正常工作(因此,第一个调用并不是在某种程度上破坏东西)

以下是回溯:

  File "/home/neuronet/SO_pygal_spyder", line 21, in <module>
    worldmap.render_to_file('random_places.svg')

  File "/home/neuronet/.local/lib/python3.6/site-packages/pygal/graph/public.py", line 114, in render_to_file
    f.write(self.render(is_unicode=True, **kwargs))

  File "/home/neuronet/.local/lib/python3.6/site-packages/pygal/graph/public.py", line 52, in render
    self.setup(**kwargs)

  File "/home/neuronet/.local/lib/python3.6/site-packages/pygal/graph/base.py", line 185, in setup
    self.state = State(self, **kwargs)

  File "/home/neuronet/.local/lib/python3.6/site-packages/pygal/state.py", line 35, in __init__
    merge(self.__dict__, graph.config.__class__.__dict__)

  File "/home/neuronet/.local/lib/python3.6/site-packages/pygal/util.py", line 384, in merge
    dict1[key] = mergextend(val, dict1.get(key, ()))

  File "/home/neuronet/.local/lib/python3.6/site-packages/pygal/util.py", line 370, in mergextend
    if list1 is None or _ellipsis not in list1:

TypeError: argument of type 'Key' is not iterable
文件“/home/neuronet/SO_pygal_spyder”,第21行,在
render_to_文件('random_places.svg')
文件“/home/neuronet/.local/lib/python3.6/site packages/pygal/graph/public.py”,第114行,在render_to_文件中
f、 write(self.render(is_unicode=True,**kwargs))
文件“/home/neuronet/.local/lib/python3.6/site packages/pygal/graph/public.py”,第52行,在渲染中
自我设置(**kwargs)
文件“/home/neuronet/.local/lib/python3.6/site packages/pygal/graph/base.py”,第185行,在安装程序中
self.state=状态(self,**kwargs)
文件“/home/neuronet/.local/lib/python3.6/site packages/pygal/state.py”,第35行,在__
合并(self.\uuuuu dict.\uuuuuu,graph.config.\uuuuuu class.\uuuuuuuuuu dict.\uuuuuu)
文件“/home/neuronet/.local/lib/python3.6/site packages/pygal/util.py”,合并中第384行
dict1[key]=mergextend(val,dict1.get(key,())
文件“/home/neuronet/.local/lib/python3.6/site packages/pygal/util.py”,第370行,在mergextend中
如果列表1为无或_省略号不在列表1中:
TypeError:类型为“Key”的参数不可编辑
相关问题


您可以通过转到
Run>Configuration per file
并选择名为
Remove all variables before execution
的选项并重试来解决此问题。您可以通过转到
Run>Configuration per file
并选择名为
Remove all variables before execution
的选项并重试来解决此问题再一次。