v4567
Фев. 15, 2012 22:30:29
вообще конечно это нонсенс, что новая ветка не поддерживает старые скрипты, это какая то хрень получается что все скрипты написанные ранее уже работать не будут в новой ветке, это не язык это херьня
s0rg
Фев. 15, 2012 22:36:07
у вас есть утилита 2to3 ?
v4567
Фев. 16, 2012 08:47:10
s0rg огромное спасибо за то что помогаете.
утилита 2to3 есть на форуме forum.vingrad.ru мне подсказали что нужно её натравить на библиотеку, но я в питоне ничего не понимаю, если Вам не трудно можете подробней рассказать что с ней надо делать. Ещё раз огромное спасибо за помощь!
v4567
Фев. 19, 2012 13:44:29
s0rg сделал как ты говоришь - натравил 2yo3 на iotop, в результате чего были исправлены все синтаксические ошибки и iotop был без проблем установлен. Но при запуске выдало вот что:
Traceback (most recent call last):
File "/usr/bin/iotop", line 16, in <module>
main()
File "/usr/lib/python3.2/site-packages/iotop/ui.py", line 571, in main
main_loop()
File "/usr/lib/python3.2/site-packages/iotop/ui.py", line 561, in <lambda>
main_loop = lambda: run_iotop(options)
File "/usr/lib/python3.2/site-packages/iotop/ui.py", line 465, in run_iotop
return curses.wrapper(run_iotop_window, options)
File "/usr/lib/python3.2/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/lib/python3.2/site-packages/iotop/ui.py", line 455, in run_iotop_window
taskstats_connection = TaskStatsNetlink(options)
File "/usr/lib/python3.2/site-packages/iotop/data.py", line 146, in __init__
self.family_id = controller.get_family_id('TASKSTATS')
File "/usr/lib/python3.2/site-packages/iotop/genetlink.py", line 65, in get_family_id
a = NulStrAttr(CTRL_ATTR_FAMILY_NAME, family)
File "/usr/lib/python3.2/site-packages/iotop/netlink.py", line 131, in __init__
Attr.__init__(self, attr_type, "%dsB" % len(data), data, 0)
File "/usr/lib/python3.2/site-packages/iotop/netlink.py", line 97, in __init__
self.data = struct.pack(data, *values)
struct.error: argument for 's' must be a bytes object
это наверное уже никак не исправить?
s0rg
Фев. 19, 2012 15:06:57
Попробуйте сделать так:
в файле /usr/lib/python3.2/site-packages/iotop/netlink.py на строке 131
измените: Attr.__init__(self, attr_type, “%dsB” % len(data), data, 0) на Attr.__init__(self, attr_type, “%dsB” % len(data), bytes(data), 0)
Я не уверен что это 100% сработает - с 3-й версией я не работал )
Может более опытные товарищи здесь смогут подсказать.
v4567
Фев. 19, 2012 20:28:56
s0rg не помогло, вот что выдало:
Traceback (most recent call last):
File “/usr/bin/iotop”, line 16, in <module>
main()
File “/usr/lib/python3.2/site-packages/iotop/ui.py”, line 571, in main
main_loop()
File “/usr/lib/python3.2/site-packages/iotop/ui.py”, line 561, in <lambda>
main_loop = lambda: run_iotop(options)
File “/usr/lib/python3.2/site-packages/iotop/ui.py”, line 465, in run_iotop
return curses.wrapper(run_iotop_window, options)
File “/usr/lib/python3.2/curses/wrapper.py”, line 43, in wrapper
return func(stdscr, *args, **kwds)
File “/usr/lib/python3.2/site-packages/iotop/ui.py”, line 455, in run_iotop_window
taskstats_connection = TaskStatsNetlink(options)
File “/usr/lib/python3.2/site-packages/iotop/data.py”, line 146, in __init__
self.family_id = controller.get_family_id('TASKSTATS')
File “/usr/lib/python3.2/site-packages/iotop/genetlink.py”, line 65, in get_family_id
a = NulStrAttr(CTRL_ATTR_FAMILY_NAME, family)
File “/usr/lib/python3.2/site-packages/iotop/netlink.py”, line 131, in __init__
Attr.__init__(self, attr_type, “%dsB” % len(data), bytes(data), 0)
TypeError: string argument without an encoding
s0rg
Фев. 19, 2012 20:37:27
v4567
Фев. 19, 2012 20:49:41
теперь вот:
Traceback (most recent call last):
File “/usr/bin/iotop”, line 16, in <module>
main()
File “/usr/lib/python3.2/site-packages/iotop/ui.py”, line 571, in main
main_loop()
File “/usr/lib/python3.2/site-packages/iotop/ui.py”, line 561, in <lambda>
main_loop = lambda: run_iotop(options)
File “/usr/lib/python3.2/site-packages/iotop/ui.py”, line 465, in run_iotop
return curses.wrapper(run_iotop_window, options)
File “/usr/lib/python3.2/curses/wrapper.py”, line 43, in wrapper
return func(stdscr, *args, **kwds)
File “/usr/lib/python3.2/site-packages/iotop/ui.py”, line 455, in run_iotop_window
taskstats_connection = TaskStatsNetlink(options)
File “/usr/lib/python3.2/site-packages/iotop/data.py”, line 146, in __init__
self.family_id = controller.get_family_id('TASKSTATS')
File “/usr/lib/python3.2/site-packages/iotop/genetlink.py”, line 67, in get_family_id
flags=NLM_F_REQUEST, attrs=)
File “/usr/lib/python3.2/site-packages/iotop/genetlink.py”, line 47, in __init__
payload=+attrs)
File “/usr/lib/python3.2/site-packages/iotop/netlink.py”, line 183, in __init__
contents.append(attr._dump())
File “/usr/lib/python3.2/site-packages/iotop/netlink.py”, line 105, in _dump
return hdr + self.data + ‘\0’ * pad
TypeError: can't concat bytes to str
s0rg
Фев. 20, 2012 00:19:38
return bytes(hdr + self.data + '\0' * pad, 'utf8')
v4567
Фев. 20, 2012 10:12:43
s0rg огромное спасибо за помощь но наверное не победить эти ошибки, исправил - не работает вот что выдало:
Traceback (most recent call last):
File "/usr/bin/iotop", line 16, in <module>
main()
File "/usr/lib/python3.2/site-packages/iotop/ui.py", line 571, in main
main_loop()
File "/usr/lib/python3.2/site-packages/iotop/ui.py", line 561, in <lambda>
main_loop = lambda: run_iotop(options)
File "/usr/lib/python3.2/site-packages/iotop/ui.py", line 465, in run_iotop
return curses.wrapper(run_iotop_window, options)
File "/usr/lib/python3.2/curses/wrapper.py", line 43, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/lib/python3.2/site-packages/iotop/ui.py", line 455, in run_iotop_window
taskstats_connection = TaskStatsNetlink(options)
File "/usr/lib/python3.2/site-packages/iotop/data.py", line 146, in __init__
self.family_id = controller.get_family_id('TASKSTATS')
File "/usr/lib/python3.2/site-packages/iotop/genetlink.py", line 67, in get_family_id
flags=NLM_F_REQUEST, attrs=[a])
File "/usr/lib/python3.2/site-packages/iotop/genetlink.py", line 47, in __init__
payload=[GenlHdr(self.cmd)]+attrs)
File "/usr/lib/python3.2/site-packages/iotop/netlink.py", line 183, in __init__
contents.append(attr._dump())
File "/usr/lib/python3.2/site-packages/iotop/netlink.py", line 105, in _dump
return bytes(hdr + self.data + '\0' * pad, 'utf8')
TypeError: can't concat bytes to str