#reportlab
#reportlab
Вопрос:
Мне нужна была помощь в понимании причины следующей ошибки. При запуске гистограммы, генерирующей код в reportlab по URLhttps://www.reportlab.com/snippets/3 /, Я столкнулся с ошибкой в строке
из standard_colors импортируйте pdf_chart_colors, setItems
заявляя, что:
Ошибка импорта: отсутствует модуль с именем standard_colors
Я не понимаю, есть ли проблема при установке reportlab или чего-то еще. Пожалуйста, укажите.
Комментарии:
1. Я не знаком с модулем standard_colors. Может быть, это что-то специфичное для коммерческих продуктов ReportLab?
2. Я понятия не имею об этом. Но, как вы можете видеть в коде, они используют «setItems» и «pdf_chart_colors» в коде, который взят из standard_colors. Если я не использую это, я не знаю альтернативы для того же.
3. Хм, тогда не уверен, потому что я никогда не использовал эти функции в ReportLab (мне всегда нужно было больше математических графиков, и я использовал MatPlotLib). Просто попробуйте исключить этот материал и посмотрите, что произойдет: мы надеемся, вы получите что-то в оттенках серого, над которым затем сможете поработать, чтобы найти способ раскрасить, если хотите.
Ответ №1:
Мне стало любопытно по этому вопросу, и я начинаю копать. В сообщении указано, каким должен быть исходный код standard_colors.
standard_colors.py:
from reportlab.lib.colors import HexColor
pdf_chart_colors = [ HexColor("#0000e5"), HexColor("#1f1feb"), HexColor("#5757f0"), HexColor("#8f8ff5"), HexColor("#c7c7fa"), HexColor("#f5c2c2"), HexColor("#eb8585"), HexColor("#e04747"), HexColor("#d60a0a"), HexColor("#cc0000"), HexColor("#ff0000"), ]
def setItems(n, obj, attr, values):
m = len(values)
i = m // n
for j in xrange(n):
setattr(obj[j],attr,values[j*i % m])
источник: https://www.reportlab.com/snippets/3 /