Михаил, значит, выясняй, откуда JS скрипт подтаскивает информацию, учись сам имитировать этот запрос. Судя по тому, что в приведённом коде упоминается JSON, там всё вполне разборчиво должно быть.
Maxwell012, почитай документацию на pyinstaller, а?
Там либо есть вариант упаковки one file, и тогда ты в состоянии найти ответ самостоятельно, либо его нет, и тогда тебе придётся либо смириться, либо искать дургой упаковщик.
lok101, мог быть задан разный рабочий каталог. Собственно, именно по этому рекомендуется не использовать относительные пути для доступа к "своим" файлам, а конструировать абсолютные, опираясь на путь к исполняемому скрипту.
JRBRO, погоди, тогда у тебя должно было всё сработать уже при as_gray=False. Он бы тебе дал массив как раз правильной формы (один канал ты бы обрезал индексацией [:,:,:3]). И stack не потребовался бы.
Без подробностей ответ будет "ошибка в ДНК".