The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Как исправить ошибку в коде Pyhton PyMOL?, !*! Isothiocyanate, 23-Окт-19, 19:11  [смотреть все]
Добрый день всем!

Есть программа 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

вылазят аналогичные проблемы у людей, но решения я не нашел. может вам будет виднее?

  • Как исправить ошибку в коде Pyhton PyMOL?, !*! Isothiocyanate, 19:18 , 23-Окт-19 (1)
    Я не разобрался в программе, просто скопировал с сервера где оказался нормальный PmwColor.py

    на место моего и все заработало.

    Но вот ерунда, там строка 359 выглядит так само:

      return (
            '#%04x%04x%04x' % (lightRGB[0], lightRGB[1], lightRGB[2]),
            '#%04x%04x%04x' % (darkRGB[0], darkRGB[1], darkRGB[2])
        )

    • Как исправить ошибку в коде Pyhton PyMOL?, !*! DiabloPC, 08:23 , 24-Окт-19 (2)
      > Но вот ерунда, там строка 359 выглядит так само:

      A если diff'ом прогнать оба файла??
      Ошибка могла быть совсем в другом месте, а вот спотыкалось оно уже на этом.

      • Как исправить ошибку в коде Pyhton PyMOL?, !*! Isothiocyanate, 15:36 , 25-Окт-19 (4)
        > A если diff'ом прогнать оба файла??
        > Ошибка могла быть совсем в другом месте, а вот спотыкалось оно уже
        > на этом.

        Там по ходу программы, в самом начале , удаляется переменная float, касающаяся чисел с плавающей запятой. И тогда две эти строки читаются нормально.
        У меня скопированный файл уже с удаленной переменной, поэтому где она стояла я точно указать не могу.

    • Как исправить ошибку в коде Pyhton PyMOL?, !*! cool29, 16:18 , 24-Окт-19 (3)
      > Я не разобрался в программе, просто скопировал с сервера где оказался нормальный
      > PmwColor.py
      > на место моего и все заработало.
      > Но вот ерунда, там строка 359 выглядит так само:
      >   return (
      >         '#%04x%04x%04x' % (lightRGB[0], lightRGB[1],
      > lightRGB[2]),
      >         '#%04x%04x%04x' % (darkRGB[0], darkRGB[1],
      > darkRGB[2])
      >     )

      Очень похоже, что вы устаналивали модули из стандартных репозиториев вашей ос. Там всегда, если это не какой нибудь arch, старые пакеты. Лучше всего либо брать пакеты с официальных сайтов, либо использовать официальные образы docker, хотя это может быть и в некоторых аспектах сложнее в части инфраструктуры.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру