如何在Windows下运行“ pythondialog”代码?

时间:2019-03-16 02:51:29

标签: python dialog

我最近正在学习pythondialog。我尝试从此处运行示例代码:http://pythondialog.sourceforge.net/#installation

这是代码:

#! /usr/bin/env python3

import locale
from dialog import Dialog

locale.setlocale(locale.LC_ALL, '')
d = Dialog(dialog="dialog")
d.set_background_title("My little program")
if d.yesno("Are you REALLY sure you want to see this?") == d.OK:
    d.msgbox("You have been warned...")
    code, tags = d.checklist("What sandwich toppings do you like?",
                         choices=[("Catsup", "",             False),
                                  ("Mustard", "",            False),
                                  ("Pesto", "",              False),
                                  ("Mayonnaise", "",         True),
                                  ("Horse radish","",        True),
                                  ("Sun-dried tomatoes", "", True)],
                         title="Do you prefer ham or spam?",
                         backtitle="And now, for something "
                         "completely different...")
    if code == d.OK:
        pass
else:
    code, tag = d.menu("OK, then you have two options:",
                   choices=[("(1)", "Leave this fascinating example"),
                            ("(2)", "Leave this fascinating example")])
    if code == d.OK:
        pass

当我使用“ apt install python3-dialog”时,它可以在linux-debian下工作。如果我仅pip安装“ pythondialog”,则程序错误:“ ExecutableNotFound ...”

现在我正在尝试在Windows10下使用pycharm运行代码,但是存在相同的错误:

...  
File "D:\PycharmProjects\test\venv\lib\site-packages\dialog.py", line 469, in _path_to_executable
"can't find the executable for the dialog-like "
dialog.ExecutableNotFound: Executable not found: can't find the executable for the dialog-like program

我想我似乎安装了有关dialog()的“ exe”,但我不知道该怎么做。 我正在网上搜索很长时间。但是没用。请帮助或尝试给出一些想法来实现这一目标。

谢谢。

1 个答案:

答案 0 :(得分:0)

错误消息非常清楚:“找不到可执行文件:找不到类似对话框的程序的可执行文件”。 pythondialog通过调用dialog程序来工作。但是,被调用程序的名称并不重要,重要的是它的行为类似于对话框。因此,任何与对话框兼容的程序都可以。接受与对话框相同的命令行参数并且在给定相同的命令行参数时行为类似的程序在pythondialog文档(manual和其他页面中称为类似于对话框的程序或文件)。

因此,pythondialog需要一个我们刚刚定义的类似对话框的程序。默认情况下,它使用dialog环境变量以名称PATH查找该程序,但是您可以根据需要明确选择特定名称或可执行文件的完整路径。例如,如果您的foobar的目录之一中存在一个名为PATH的类似对话框的程序,则可以使用Dialog来构造Dialog(dialog="foobar")实例因此使用该对象的方法显示的所有小部件都将使用foobar而不是dialog作为基础引擎。

在Debian上使用apt install python3-dialog时没有出现错误的原因是python3-dialog Debian软件包取决于dialog Debian软件包。因此,您在dialog的目录之一(通常在PATH中,以默认名称/usr/bin安装了一个类似对话框的程序,除非您有 else 在您的PATH的前面调用了dialog,例如dialog的本地安装。

但是,当您尝试在Windows上使用pythondialog时,您没有满足安装类似对话框的程序的基本要求,这就是为什么会出现“找不到可执行文件”错误的原因。 PyPI page for pythondialog之所以说“操作系统:Unix”,是因为dialog需要一个Unix(或POSIX)终端才能运行,即AFAIK。因此,pythondialog在Windows上无法自然运行并不奇怪。但是,它可能可以在Windows Cygwin 中使用。实际上,对话似乎已经移植到Cygwin了。当然,您将需要安装此端口,并至少在Cygwin终端中运行程序(在这种情况下,我不确定Python安装是否也必须是Cygwin端口,因此您可能想尝试使用本机Windows下为Python,但请确保从Cygwin提供的终端上运行程序。