Добрый день всем!Есть программа PyMOL, использующая Python 2., python 3. одновременно.
Модуль Pmw устанавливается pip3 install Pmw, содержит ошибку в строке 359
/home/user1/.local/lib/python3.7/site-packages/Pmw/Pmw_2_0_1/lib/PmwColor.py
PmwColor.py", line 359, in bordercolors
'#%04x%04x%04x' % (lightRGB[0], lightRGB[1], lightRGB[2]),
TypeError: %x format: an integer is required, not float
Оригинальный код:
return (
'#%04x%04x%04x' % (lightRGB[0], lightRGB[1], lightRGB[2]),
'#%04x%04x%04x' % (darkRGB[0], darkRGB[1], darkRGB[2])
)
Я так понял, что это фрагмент кода питона 2, его надо переписать на 3 вот так:
For integer values providing a precision doesn't make much sense and is actually forbidden in the new style (it will result in a ValueError).
Old
'%04d' % (42,)
New
'{:04d}'.format(42)
Output
0042
https://pyformat.info/
Переписал:
return (
'{:04x{:04x{:04x}' (lightRGB[0], lightRGB[1], lightRGB[2]),
'{:04x{:04x{:04x}' (darkRGB[0], darkRGB[1], darkRGB[2])
)
Получил новую ошибку
File "/home/user1/.local/lib/python3.7/site-packages/Pmw/Pmw_2_0_1/lib/PmwColor.py", line 359, in bordercolors
'{:04x{:04x{:04x}' (lightRGB[0], lightRGB[1], lightRGB[2]),
TypeError: 'str' object is not callable
Помогите пожалуйста, кто знает Python.
P.S.:
Если вбить в гугл
PmwColor.py", line 359, in bordercolors
'#%04x%04x%04x' % (lightRGB[0], lightRGB[1], lightRGB[2]),
TypeError: %x format: an integer is required, not float
вылазят аналогичные проблемы у людей, но решения я не нашел. может вам будет виднее?