Python Tkinter 与 ubuntu 服务器一起使用时出现问题

标签 python tkinter odoo

我在使用 tkinter 插件时遇到问题。 我在本地系统中使用 ubuntu 12.10 桌面,并安装了 python 2.7 和 3.2 我在 OpenERP 中使用了 tkinter 插件,它在我的本地电脑上运行良好。 但问题是,当在服务器(Ubuntu 12.04 Server)中使用相同的代码时,它不起作用

显示

self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk,sync, use) 
TclError: no display name and no $DISPLAY environment variable

我在终端中检查了 python,它也显示错误,这意味着 tkinter 中有问题 我不知道的地方。 我还检查了 tkinter 和 python 版本都很好。 但我在终端中查找 tkinter 时发现了一些不寻常的事情。 在 Local 中它显示位于 python3.2 中的 tkinter 插件, 但在服务器中它不显示 tkinter

我检查了权限也没有问题。 如何使 tkinter 在 Ubuntu 服务器 12.04 中工作

最佳答案

如果能包含完整的回溯和更大的代码摘录就更好了。错误消息意味着 Tkinter 无法找到您的 X 图形环境,这可能意味着您正在 headless 服务器上运行代码,正如 Dominic 指出的那样。 您可以尝试在服务器上安装 X,但如果机器确实是没有用户界面的服务器,则不需要 GUI。

如果您确实需要在执行该代码时显示 GUI,那么它不应该在服务器端运行,或者您需要设置到客户端计算机的 X11 转发。不过,这在 OpenERP 环境中似乎没有多大意义 - 因为它很难以通用方式为所有用户工作。

现在您可能正在使用 matplotlib 来生成图形(您的代码摘录没有显示这一点)?如果是,您可以简单地强制它使用 headless 后端来生成图像,如question中所述。或者这个other question .

尝试在调用渲染代码之前执行以下代码:

import matplotlib
import matplotlib.pyplot

# force headless backend, or set 'backend' to 'Agg'
# in your ~/.matplotlib/matplotlibrc
matplotlib.use('Agg')

# force non-interactive mode, or set 'interactive' to False
# in your ~/.matplotlib/matplotlibrc
matplotlib.pyplot.ioff()

另请参阅以下引用资料:

关于Python Tkinter 与 ubuntu 服务器一起使用时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15061135/

相关文章:

python - (Django) 从 charField 中修剪空格

python - docker 无法访问主机中的gunicorn 服务的资源

python - Tkinter,canvas.rectangle 中的标签/文本 [python]

python - 如何为 Tkinter 的 python 中的按钮添加边框?

python - Odoo - 编辑某些空值字段时发出警告

odoo - Many2one 字段上的 delegate 和 odoo15 中的 _inherits 有什么区别?

python - 如何从txt文件制作字典?

python - 在字典列表中查找项目

每 30 秒或特定时间间隔后的 Python Tkinter 调用事件

javascript - 在 openerp 版本 7 POS 前端 View 中添加客户搜索