Python 使用SchemDraw库自动保存图像

Python 使用SchemDraw库自动保存图像,python,Python,我想用python中的这个库来生成电气图: , 我想在服务器上运行这段代码 其思想是生成图像,将其保存在服务器中,然后通过url将其发送给客户端 我使用它的示例代码来测试: import SchemDraw as schem import SchemDraw.elements as e d = schem.Drawing() V1 = d.add(e.SOURCE_V, label='10V') d.add(e.RES, d='right', label='100K$\Omega$') d.ad

我想用python中的这个库来生成电气图: , 我想在服务器上运行这段代码

其思想是生成图像,将其保存在服务器中,然后通过url将其发送给客户端

我使用它的示例代码来测试:

import SchemDraw as schem
import SchemDraw.elements as e
d = schem.Drawing()
V1 = d.add(e.SOURCE_V, label='10V')
d.add(e.RES, d='right', label='100K$\Omega$')
d.add(e.CAP, d='down', botlabel='0.1$\mu$F')
d.add(e.LINE, to=V1.start)
d.add(e.GND)
d.draw()
d.save('testschematic.svg')
它工作正常,但问题是图像出现了,我需要手动保存它,如果我在服务器上执行此代码,它会显示错误:

文件“/usr/local/lib/python3.5/tkinter/init.py”,第1877行,在 initapi_1 | self.tk=_tkinter.create(屏幕名、基本名、类名、交互、WANTObject、useTk、同步、使用)api_1 |\u tkinter.TclError:没有显示名称,也没有$display环境 变数

我想在服务器上显示图像是不可能的,因为它没有可视化界面


是否有可能保存此文件而不显示它?

官方文档现在有一个部分用于此:

schemdraw
0.8开始,您可以将图像
bytes
直接保存到内存中的变量,而无需弹出文件或窗口

从schemdraw导入图形,ImageFormat
导入matplotlib
matplotlib.use('Agg')#在此处设置后端
绘图=绘图()
#在此处添加电路组件。
#将原理图字节保存到变量中。
image_bytes=绘图.get\u imagedata(ImageFormat.SVG)


对于
schemdraw,我有一个类似的问题。它执行d.draw(),不继续执行d.save()。如果我删除d.draw(),就会出现此错误:AttributeError:“Drawing”对象没有属性“fig”供参考,至少从0.7.1开始,
Drawing.save()
在内部调用
Drawing.draw()
,因此在
d.save()
之前对
d.save()
的额外调用是不必要的。是的,几个月前,是的,我用这种方法解决了它,谢谢你的回复。
import matplotlib
matplotlib.use('Agg') # Set the backend here

import SchemDraw as schem
import SchemDraw.elements as e
d = schem.Drawing()
...
d.draw()
d.save('mycircuit.svg')