The OpenNET Project / Index page

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



"Как исправить ошибку в коде Pyhton PyMOL?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на рабочей станции (Математика и наука / Linux)
Изначальное сообщение [ Отслеживать ]

"Как исправить ошибку в коде Pyhton PyMOL?"  +/
Сообщение от Isothiocyanate (ok), 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

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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

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

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

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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