因此,我刚刚安装了Urwid,并进行了一次测试,尝试运行与基本打印命令等效的Urwid,如Urwid网站教程中的示例所示。我收到一条错误消息。

我尝试运行其中一个示例中的另一个示例,并收到了类似的错误消息。代码如下:

import urwid

txt = urwid.Text(u"Hello World")
fill = urwid.Filler(txt, 'top')
loop = urwid.MainLoop(fill)
loop.run()


它应该在屏幕的左上角打印“ Hello World”,然后运行直到指示退出为止。相反,我收到此错误消息:

Traceback (most recent call last):
  File "C:\Users\Rory Kranz\AppData\Local\atom\app-1.34.0\testingg", line 5, in <module>
    loop = urwid.MainLoop(fill)
  File "C:\Users\Rory Kranz\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urwid\main_loop.py", line 114, in __init__
    screen = raw_display.Screen()
  File "C:\Users\Rory Kranz\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urwid\raw_display.py", line 92, in __init__
    fcntl.fcntl(self._resize_pipe_rd, fcntl.F_SETFL, os.O_NONBLOCK)
NameError: name 'fcntl' is not defined


安装有问题吗?还是需要其他安装才能使Urwid正常工作?

最佳答案

如果要使用urwid,则需要将其与cygwin一起使用(不确定mingw是否支持它,但是如果您愿意,可以尝试一下)。

Windows本机不支持fcntl接口,显然,使用win32函数对其进行仿真并非易事。

如果要保留在没有UNIX仿真环境的Windows上,则可以尝试cursespython prompt toolkit。我不确定这些是最佳选择,因为我不清楚您到底想做什么。

一些相关链接

Problem over windows platform
NameError: name 'fcntl' is not defined

关于python - 在Windows上使用urwid时出现'NameError:名称'fcntl'未定义',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54357073/

10-10 11:11