我想在python中使用这个库来生成电子图: https://cdelker.bitbucket.io/SchemDraw/, 我想在服务器上运行此代码。
这个想法是生成图像,将其保存在服务器中,然后通过URL将其提供给客户端。
我正在使用其示例代码进行测试:
this
它工作正常,但问题是图像出现,我需要手动保存,如果我在服务器中执行此代码,它会给我错误:
文件" /usr/local/lib/python3.5/tkinter/ init .py",第1877行, init api_1 | self.tk = _tkinter.create(screenName,baseName,className,interactive,wantobjects,useTk,sync,use)api_1 | _tkinter.TclError:没有显示名称,没有$ DISPLAY环境 变量
我想在服务器中显示图像是不可能的,因为它没有可视化界面。
是否有可能在不显示的情况下保存它?
答案 0 :(得分:2)
SchemDraw的作者Collin Delker在https://www.collindelker.com/2014/08/29/electrical-schematic-drawing-python.html
上提供了此建议。SchemDraw绘制在Matplotlib图形上,因此,如果您具有交互式Matplotlib后端,它将尝试在窗口中显示图像,这在服务器上是不可能的。首先尝试将后端设置为其他内容,例如“ Agg”,然后查看是否可以解决该问题:
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')
对我有用