因此,我刚刚安装了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上,则可以尝试curses或python prompt toolkit。我不确定这些是最佳选择,因为我不清楚您到底想做什么。
一些相关链接
Problem over windows platform
NameError: name 'fcntl' is not defined
关于python - 在Windows上使用urwid时出现'NameError:名称'fcntl'未定义',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54357073/