我正在尝试设置一个简单的应用程序,用户可以在其中下载 excel 格式的文件。为了做到这一点,我正在使用 tkinter,所以当用户按下按钮时,它会打开窗口以选择保存文件的位置。这在本地运行文件时会产生奇迹。当我尝试在 CentOs 服务器中托管我的应用程序时,问题就开始了,因为我在应用程序内显示以下错误:
TclError: no display name and no $DISPLAY environment variable
该应用程序是使用streamlit开发的,但考虑到问题仅在我使用不同的操作系统时发生,我不确定这个框架是否是原因。无论如何,由于我在这方面和 tkinter 上的知识非常有限,我也在相应的论坛上发布了这个问题。
因此,这是重现我遇到的错误的最小工作示例:
import tkinter
import streamlit as st
def main():
st.write(tkinter.TkVersion)
root = tkinter.Tk()
if __name__ == '__main__':
main()
如果我在 CentOS 中运行该代码,这就是我得到的:
我在网上搜索并找到了这个和这个,但我不仅在更新代码访问 CentOS 服务器后没有使用 ssh,而且我也没有使用 matplotlib。
Python 版本:3.6.8 Streamlit 版本:0.58 tkinter 版本:8.5
任何有关如何解决此错误的帮助将不胜感激。如果您有任何疑问,请询问。