Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 6, 2013 19:22:01

antib
От:
Зарегистрирован: 2010-02-23
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

примеры из urwid tutorial и проблема с установкой

Доброго времени суток.
Взялся вникать в руководство по urwid и столкнулся с тем, что примеры из этого руководства не запускаются. На чём запускаю: ОС - linux mint debian edition, Python 3.2.3 (default, Jun 25 2012, 23:10:56) on linux2 и IPython 0.13.1. Библиотека urwid поставлена из репов, согласно aptitude версия 1.0.1-2.
Например копипастю такое:

import urwid
def exit_on_q(key):
    if key in ('q', 'Q'):
        raise urwid.ExitMainLoop()
palette = [
    ('banner', '', '', '', '#ffa', '#60d'),
    ('streak', '', '', '', 'g50', '#60a'),
    ('inside', '', '', '', 'g38', '#808'),
    ('outside', '', '', '', 'g27', '#a06'),
    ('bg', '', '', '', 'g7', '#d06'),]
placeholder = urwid.SolidFill()
loop = urwid.MainLoop(placeholder, palette, unhandled_input=exit_on_q)
loop.screen.set_terminal_properties(colors=256)
loop.widget = urwid.AttrMap(placeholder, 'bg')
loop.widget.original_widget = urwid.Filler(urwid.Pile([]))
div = urwid.Divider()
outside = urwid.AttrMap(div, 'outside')
inside = urwid.AttrMap(div, 'inside')
txt = urwid.Text(('banner', " Hello World "), align='center')
streak = urwid.AttrMap(txt, 'streak')
pile = loop.widget.base_widget # .base_widget skips the decorations
for item in [outside, inside, streak, inside, outside]:
     pile.contents.append((item, pile.options()))
loop.run()

Первые примеры не запускались, ругаясь на код типа u'какой-то текст', но это исправлялось стиранием u перед кавычками. Этот пример при попытке запуска пишет такое:
AttributeError                            Traceback (most recent call last)
/usr/lib/python3/dist-packages/IPython/utils/py3compat.py in execfile(fname, glob, loc)
     74     def execfile(fname, glob, loc=None):
     75         loc = loc if (loc is not None) else glob
---> 76         exec(compile(open(fname, 'rb').read(), fname, 'exec'), glob, loc)
     77 
     78     # Refactor print statements in doctests.
/home/antib/Документы/Py/urwid4.py in <module>()
     25 pile = loop.widget.base_widget # .base_widget skips the decorations
     26 for item in [outside, inside, streak, inside, outside]:
---> 27      pile.contents.append((item, pile.options()))
     28 
     29 loop.run()

import urwid
def menu_button(caption, callback):
    button = urwid.Button(caption)
    urwid.connect_signal(button, 'click', callback)
    return urwid.AttrMap(button, None, focus_map='reversed')
def sub_menu(caption, choices):
    contents = menu(caption, choices)
    def open_menu(button):
        return top.open_box(contents)
    return menu_button([caption, '...'], open_menu)
def menu(title, choices):
    body = [urwid.Text(title), urwid.Divider()]
    body.extend(choices)
    return urwid.ListBox(urwid.SimpleFocusListWalker(body))
def item_chosen(button):
    response = urwid.Text(['You chose ', button.label, '\n'])
    done = menu_button('Ok', exit_program)
    top.open_box(urwid.Filler(urwid.Pile([response, done])))
def exit_program(button):
    raise urwid.ExitMainLoop()
menu_top = menu('Main Menu', [
    sub_menu('Applications', [
        sub_menu('Accessories', [
            menu_button('Text Editor', item_chosen),
            menu_button('Terminal', item_chosen),
        ]),
    ]),
    sub_menu('System', [
        sub_menu('Preferences', [
            menu_button('Appearance', item_chosen),
        ]),
        menu_button('Lock Screen', item_chosen),
    ]),
])
class CascadingBoxes(urwid.WidgetPlaceholder):
    max_box_levels = 4
    def __init__(self, box):
        super(CascadingBoxes, self).__init__(urwid.SolidFill('/'))
        self.box_level = 0
        self.open_box(box)
    def open_box(self, box):
        self.original_widget = urwid.Overlay(urwid.LineBox(box),
            self.original_widget,
            align='center', width=('relative', 80),
            valign='middle', height=('relative', 80),
            min_width=24, min_height=8,
            left=self.box_level * 3,
            right=(self.max_box_levels - self.box_level - 1) * 3,
            top=self.box_level * 2,
            bottom=(self.max_box_levels - self.box_level - 1) * 2)
        self.box_level += 1
    def keypress(self, size, key):
        if key == 'esc' and self.box_level > 1:
            self.original_widget = self.original_widget[0]
            self.box_level -= 1
        else:
            return super(CascadingBoxes, self).keypress(size, key)
top = CascadingBoxes(menu_top)
urwid.MainLoop(top, palette=[('reversed', 'standout', '')]).run()
ответ:
antib@silentbox:~/Документы/Py$ ipython3 urwid8.py 
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
/usr/lib/python3/dist-packages/IPython/utils/py3compat.py in execfile(fname, glob, loc)
     74     def execfile(fname, glob, loc=None):
     75         loc = loc if (loc is not None) else glob
---> 76         exec(compile(open(fname, 'rb').read(), fname, 'exec'), glob, loc)
     77 
     78     # Refactor print statements in doctests.
/home/antib/Документы/Py/urwid8.py in <module>()
     29         sub_menu('Accessories', [
     30             menu_button('Text Editor', item_chosen),
---> 31             menu_button('Terminal', item_chosen),
     32         ]),
     33     ]),
/home/antib/Документы/Py/urwid8.py in sub_menu(caption, choices)
      7 
      8 def sub_menu(caption, choices):
----> 9     contents = menu(caption, choices)
     10     def open_menu(button):
     11         return top.open_box(contents)
/home/antib/Документы/Py/urwid8.py in menu(title, choices)
     15     body = [urwid.Text(title), urwid.Divider()]
     16     body.extend(choices)
---> 17     return urwid.ListBox(urwid.SimpleFocusListWalker(body))
     18 
     19 def item_chosen(button):
AttributeError: 'module' object has no attribute 'SimpleFocusListWalker'

попробовал поставить urwid с стайта разработчика.
antib@silentbox:~/Документы/Py/urwid-1.1.1$ sudo python3 setup.py build
[sudo] password for antib: 
running build
running build_py
running build_ext
building 'urwid.str_util' extension
gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -fPIC -I/usr/include/python3.2mu -c source/str_util.c -o build/temp.linux-x86_64-3.2/source/str_util.o
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-3.2/source/str_util.o -o build/lib.linux-x86_64-3.2/urwid/str_util.cpython-32mu.so
antib@silentbox:~/Документы/Py/urwid-1.1.1$ sudo python3 setup.py install
running install
Checking .pth file support in /usr/local/lib/python3.2/dist-packages/
/usr/bin/python3 -E -c pass
TEST PASSED: /usr/local/lib/python3.2/dist-packages/ appears to support .pth files
running bdist_egg
running egg_info
writing urwid.egg-info/PKG-INFO
writing top-level names to urwid.egg-info/top_level.txt
writing dependency_links to urwid.egg-info/dependency_links.txt
reading manifest file 'urwid.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'urwid.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
running build_ext
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/egg
creating build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/text_layout.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/html_fragment.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/font.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/listbox.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/raw_display.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/display_common.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/container.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/old_str_util.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/command_map.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/tests.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/graphics.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/compat.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/canvas.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/escape.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/split_repr.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/treetools.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/decoration.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/vterm_test.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/monitored_list.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/web_display.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/str_util.cpython-32mu.so -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/lcd_display.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/curses_display.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/signals.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/__init__.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/version.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/util.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/widget.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/wimp.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/vterm.py -> build/bdist.linux-x86_64/egg/urwid
copying build/lib.linux-x86_64-3.2/urwid/main_loop.py -> build/bdist.linux-x86_64/egg/urwid
byte-compiling build/bdist.linux-x86_64/egg/urwid/text_layout.py to text_layout.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/html_fragment.py to html_fragment.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/font.py to font.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/listbox.py to listbox.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/raw_display.py to raw_display.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/display_common.py to display_common.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/container.py to container.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/old_str_util.py to old_str_util.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/command_map.py to command_map.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/tests.py to tests.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/graphics.py to graphics.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/compat.py to compat.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/canvas.py to canvas.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/escape.py to escape.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/split_repr.py to split_repr.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/treetools.py to treetools.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/decoration.py to decoration.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/vterm_test.py to vterm_test.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/monitored_list.py to monitored_list.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/web_display.py to web_display.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/lcd_display.py to lcd_display.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/curses_display.py to curses_display.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/signals.py to signals.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/__init__.py to __init__.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/version.py to version.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/util.py to util.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/widget.py to widget.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/wimp.py to wimp.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/vterm.py to vterm.cpython-32.pyc
byte-compiling build/bdist.linux-x86_64/egg/urwid/main_loop.py to main_loop.cpython-32.pyc
creating stub loader for urwid/str_util.cpython-32mu.so
byte-compiling build/bdist.linux-x86_64/egg/urwid/str_util.py to str_util.cpython-32.pyc
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying urwid.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying urwid.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying urwid.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying urwid.egg-info/not-zip-safe -> build/bdist.linux-x86_64/egg/EGG-INFO
copying urwid.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
writing build/bdist.linux-x86_64/egg/EGG-INFO/native_libs.txt
creating dist
creating 'dist/urwid-1.1.1-py3.2-linux-x86_64.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing urwid-1.1.1-py3.2-linux-x86_64.egg
creating /usr/local/lib/python3.2/dist-packages/urwid-1.1.1-py3.2-linux-x86_64.egg
Extracting urwid-1.1.1-py3.2-linux-x86_64.egg to /usr/local/lib/python3.2/dist-packages
Adding urwid 1.1.1 to easy-install.pth file
Installed /usr/local/lib/python3.2/dist-packages/urwid-1.1.1-py3.2-linux-x86_64.egg
Processing dependencies for urwid==1.1.1
Finished processing dependencies for urwid==1.1.1
antib@silentbox:~/Документы/Py/urwid-1.1.1$ python3

Пакет установился, но при запуске в питоне:

Python 3.2.3 (default, Jun 25 2012, 23:10:56) 
[GCC 4.7.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import urwid
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "urwid/__init__.py", line 24, in <module>
    from urwid.widget import (FLOW, BOX, FIXED, LEFT, RIGHT, CENTER, TOP, MIDDLE,
  File "urwid/widget.py", line 694
    def __init__(self,div_char=u" ",top=0,bottom=0):
                                  ^
SyntaxError: invalid syntax
>>> 

Как это забороть и чем ему u перед кавычками не нравиться?



ОС - linux mint, Python ver 3.3

Отредактировано antib (Янв. 6, 2013 19:23:20)

Офлайн

#2 Янв. 6, 2013 22:33:02

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

примеры из urwid tutorial и проблема с установкой

Дело в том, что в третьем питоне юникод u'' строки убрали, а обычные строки ‘' стали юникод строками.
Но с версии питона 3.3 для обратной совместимости, u’' строки вернули обратно. Так что либо запускайте библиотеку под вторым питоном, либо обновите третий до версии 3.3



Офлайн

#3 Янв. 7, 2013 00:13:46

antib
От:
Зарегистрирован: 2010-02-23
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

примеры из urwid tutorial и проблема с установкой

urwid ругается не только на u, но ещё и на поддержку метода append в виджете и т.п.

Я уже поставил себе питон 3.3 из тарболла с помощью checkinstall и теперь полсистемы почернело отвалилось, а удалять этот пакет аптитуда никакими силами не желает. Но да, запущенный новый питон ругается по другим проблемам. Видимо, придёся переставлять ось и ждать пока нынешний питон и урвид попадут в репы дебиан тестинг (вроде лмде на них основан).

Или переставлять и искать мануал по старой версии urwid.



ОС - linux mint, Python ver 3.3

Отредактировано antib (Янв. 7, 2013 00:23:05)

Офлайн

#4 Янв. 7, 2013 10:24:30

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

примеры из urwid tutorial и проблема с установкой

Попробуйте запустить его не с третьего, а со второго питона тогда.
В дебиане (и других, в общем-то, дистрах) можно поставить два питона.

sudo apt-get install python2
запускать питон коммандой python2
Раз вы установили из исходников при помощи checkinstall, то менджер пакетов должен нормально это удалить.
Попробуйте сделать это с помощью dpkg.



Офлайн

#5 Янв. 7, 2013 18:57:31

antib
От:
Зарегистрирован: 2010-02-23
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

примеры из urwid tutorial и проблема с установкой

У меня уже было два питона. Второй и третий сосуществовали нормально. Я попробовал поставить параллельно третий питон и урвид с сайтов разработчиков. Я ковыряюсь с питоном для собственного удовольствия и учить 2-й и 3-й параллельно сил и времени не хватит. Снести лишний python не получилось - всё ваще отвалилось. Короче, ось я переставил. Убирать лишний питон с dpkg не успел попробовать. synaptic и aptitude с этим не справились, есть причины, по которым это мог сделать dpkg?

И главное, как мне разбираться с urwid, если в репах та версия, которая не совместима с тем питоном3 и урвидом, что у меня есть. Поставить urwid с сайта я уже пробовал, это решило часть проблем. Ставить питон с python.org оказалось чревато.



ОС - linux mint, Python ver 3.3

Офлайн

#6 Янв. 7, 2013 21:11:26

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

примеры из urwid tutorial и проблема с установкой

antib
Убирать лишний питон с dpkg не успел попробовать. synaptic и aptitude с этим не справились, есть причины, по которым это мог сделать dpkg?
synaptic и aptitude - это всего-лишь фронтенды, использующие dpkg
Я полагаю, что aptitude мог не показать причину, по которой он не хотел удалять питон. Но dpkg - обязательно бы ее показал.
Судя по всему, вы попытались просто снести питон, от которого зависело куча других пакетов, чтобы после этого поставить старый. Aptitude/synaptic трекают зависимости, поэтому по цепочке пришлось бы сносить пол системы. Но можно было удалить пакет с помощью dpkg с ключом force (игнорировать зависимости), а потом ставить старый. А можно было (что предпочтительней, на самом деле) просто сделать downgrade при помощи apt-get.
http://askubuntu.com/questions/138284/how-to-downgrade-a-package-via-apt-get



Офлайн

#7 Янв. 7, 2013 23:57:01

antib
От:
Зарегистрирован: 2010-02-23
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

примеры из urwid tutorial и проблема с установкой

Cинаптик показывал, что имеет место неразрешимый конфликт, и рекомендовал прогнать

apt-get install -f
Прогонял, но эффекта не возымело.

LMDE не 100% совместим с убунту (вычитанный там способ ручного удаления не помог, например).
На счёт даунгрейда может пригодиьтся для общего развития, но на счёт конкретной моей задачи я пока не понял. Искать и учить старый мануал, чтоб потом переучиваться на новый - не привлекает. Я не настолько всё схватываю.

Возможно ли поднять версии python3 и urwid до последних, чтоб при этом ничего не отвалилось из остальной оси?



ОС - linux mint, Python ver 3.3

Отредактировано antib (Янв. 8, 2013 00:04:56)

Офлайн

#8 Янв. 8, 2013 18:26:45

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

примеры из urwid tutorial и проблема с установкой

Проапдейтить можно, но раз пока вы не очень умеете разруливать зависимости пакетного менеджера, то есть такой вариант.
Ставите питон из исходников, но не в /usr/local/lib, а вообще в каталог с вашими проектами, к примеру - /home/antib/Projects/my_wild_python_experiment. Настраиваете этот питон для работы с virtualenv и в случае чего - просто удалите каталог.



Офлайн

#9 Янв. 9, 2013 21:35:52

antib
От:
Зарегистрирован: 2010-02-23
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

примеры из urwid tutorial и проблема с установкой

Уловил, спасибо.
man что?



ОС - linux mint, Python ver 3.3

Офлайн

#10 Янв. 13, 2013 21:23:25

antib
От:
Зарегистрирован: 2010-02-23
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

примеры из urwid tutorial и проблема с установкой

Ставлю python3 и urwid в отдельную папку, чтоб не покорёжить версию python3 для нужд ОС. Качаю архивы с оф.сайтов с сырцами. Потом ставлю пакет из репов tk-dev (и всё, что ему нужно для щастья)т.к. без него idle3 не поползёт.

./configure --prefix /home/antib/alt_python
./make
./make install
Теперь в ~/alt-python/bin лежат питон и айдл, они запускаются нормально.

Urwid просто так не ставится. Если, скопировать папку urwid в питонскую lib, то при попытке импорта происходит:
>>> import urwid
Traceback (most recent call last):
  File "", line 1, in 
  File "./urwid/__init__.py", line 24, in 
    from urwid.widget import (FLOW, BOX, FIXED, LEFT, RIGHT, CENTER, TOP, MIDDLE,
  File "./urwid/widget.py", line 24, in 
    from urwid.util import (MetaSuper, decompose_tagmarkup, calc_width,
  File "./urwid/util.py", line 46
    except ValueError, e:
                     ^
SyntaxError: invalid syntax

Установка urwid'ского setup.py нуждается в setuptools. Чтобы поставить urwid в папку альтерантивного питона надо и setuptools туда поставить?
Или есть третий путь установки urwid?



ОС - linux mint, Python ver 3.3

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version