'NameError: имя' fcntl 'не определено' при использовании urwid в Windows - PullRequest
0 голосов
/ 25 января 2019

Итак, я только что установил 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?

1 Ответ

0 голосов
/ 25 января 2019

Если вы хотите использовать urwid , вам нужно будет использовать его с cygwin (не уверен, что mingw поддерживает его, но, возможно, стоит попробоватьесли это ваше предпочтение).

Windows изначально не поддерживает интерфейс fcntl и, по-видимому, нетривиально симулировать его с помощью функций win32.

Если вы хотите остатьсяВ Windows без среды эмуляции Unix вы можете попробовать curses или python prompt toolkit .Я не могу быть уверен, что это лучший выбор, так как мне неясно, что именно вы пытаетесь сделать.

Некоторые соответствующие ссылки

Проблема с платформой Windows
NameError: имя 'fcntl' не определено

...