Уведомления

Группа в Telegram: @pythonsu

#1 Июль 1, 2010 11:06:56

boltayka
От:
Зарегистрирован: 2009-10-07
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

cgi + python + ttf

Всем привет.. Вот набросал на питоне скриптик, выводящий png изображение со временем (пока-что только учусь).

#!/usr/bin/python

import Image, ImageFont, ImageDraw
import time
import cStringIO

def generate():
fontfile = "/arialbd.ttf"

words = [ ((10, 10), time.asctime()[11:19], "#ff0000", 30)]

# A fully transparent image to work on.
im = Image.new("RGB", (135, 55), (61,43,31))
dr = ImageDraw.Draw(im)
font = ImageFont.truetype(fontfile, 30)
dr.text((10,10), time.asctime()[11:20], font=font, fill=(245,245,220))
f = cStringIO.StringIO()
im.save(f, "PNG")

print "Content-type: image/png\n"
f.seek(0)
print f.read()

if __name__ == "__main__":
generate()
Естественно, вылезла ошибка 500.. На компе всё работает, на сервере - нет. После долгого вдупления в код понял - что проблема в шрифте (а точнее в строке fontfile = “/arialbd.ttf”)

Как можно указать? Пробовал и без слеша, и полный путь..

Отредактировано (Июль 1, 2010 11:40:19)

Офлайн

#2 Июль 1, 2010 11:24:06

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

cgi + python + ttf

тут есть рабочий пример вывода текста и выбора шрифта

Офлайн

#3 Июль 1, 2010 22:33:03

boltayka
От:
Зарегистрирован: 2009-10-07
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

cgi + python + ttf

Пробовал этот метод, даже не изменяя (разве что впоследствии дописал #!/usr/bin/python) выдаёт ошибку 500…
Скрипт работает, т.к. другой пример (без текста) - http://lost-theory.org/python/dynamicimg.html у меня запускается

Офлайн

#4 Июль 1, 2010 22:38:38

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

cgi + python + ttf

трейсбек в студию…
может скрипт не может файл шрифтов открыть.

ЗЫ: и вообще кто хранит шрифты в корне ФС

Отредактировано (Июль 1, 2010 22:40:57)

Офлайн

#5 Июль 1, 2010 22:44:47

boltayka
От:
Зарегистрирован: 2009-10-07
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

cgi + python + ttf

Так нету трейсбека =(( Только код ошибки… Одмин хоста - знакомый, сделал доступ к моим логам.. Там тоже написано только “Error 500”
Может его можно как-то в файл записать?

Офлайн

#6 Июль 1, 2010 22:48:40

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

cgi + python + ttf

у меня этот код работает с этой строкой:

    dr.text( (10,10), time.asctime()[11:20], font=font, fill=0xffff00)

Офлайн

#7 Июль 1, 2010 22:53:45

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

cgi + python + ttf

boltayka
Так нету трейсбека =(( Только код ошибки… Одмин хоста - знакомый, сделал доступ к моим логам.. Там тоже написано только “Error 500”
Может его можно как-то в файл записать?
трейсбек можно пулучить так:
try:
a = 5 / 0 # ТУТ ОШИБКА
except Exception as e:
print str(e)
в итоге на вывод поступит ошибка

можно ещё logging заюзать

Офлайн

#8 Июль 1, 2010 22:54:49

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version