У меня очень странная проблема с python-qrcode.
У меня он уже некоторое время работает в нашей среде разработки, без каких-либо проблем. Мы используем его для создания двух QR-кодов, каждый из которых содержит URL-адреса почти одинаковой длины (один содержит лишнюю букву и две лишние косые черты). Крайне важно, чтобы эти два кода были одинакового размера.
С тех пор, как мы настроили python-qrcode около пяти месяцев назад, каждый сгенерированный нами qrcode в обязательном порядке был точно такого же размера. Однако теперь мы переместили все на рабочий сервер, и вдруг у нас возникла проблема.
По сути, один из генерируемых нами кодов больше обычного (это код с тремя дополнительными символами). Другой код - правильный размер. Два кода генерируются с использованием одной и той же функции, мы просто передаем разные URL-адреса для кодирования.
На моем локальном компьютере и на нашем сервере разработки все qr-коды имеют одинаковый размер (включая код с дополнительными символами), но на рабочем сервере более длинный код больше, а другой правильный.
Мы используем контроль версий Git, поэтому все файлы/функции и т. д. идентичны между серверами. Единственная разница между настройками — это версия Ubuntu (12.04 против 12.10 на рабочем сервере), но я не понимаю, почему это может вызвать эту проблему.
Если бы оба кода были больше, я бы понял, но я не могу понять, почему один будет больше другого только на одном сервере.....?
Если кто-то может подсказать, с чего начать, буду очень признателен!
РЕДАКТИРОВАТЬ:
Вот соответствующий код:
myQrGenerator = qrcode.QRCode(
version=QRCODE_SIZE,
error_correction=qrcode.constants.ERROR_CORRECT_M,
box_size=QRCODE_BOX_SIZE,
border=QRCODE_BORDER_SIZE
)
myQrGenerator.add_data('%s%s/' % (theBaseUrl, str(theHash)))
myQrGenerator.make(fit=True)
Мы получаем эти переменные из local_settings.py.
make
по умолчанию,python-qrcode
пытается соответствовать данные и, возможно, изменить размер изображения. Используйтеprint_tty
для вывода кодов на экран, чтобы полностью избежать PIL и исключить его неправильное поведение. - person soulseekah   schedule 03.12.2012print_tty
на двух машинах дает одинаковое поведение, в то время как 12.10 создает более крупный QR-код (с большим количеством полей) для более длинного URL-адреса. И что касается кодов, оба приводят к одному и тому же URL-адресу, позвольте мне уточнить, при сканировании кодов вы получаете одни и те же данные, даже если вы вводили разные данные!? - person soulseekah   schedule 03.12.2012