Почему код выдает ошибку "Please check if you have Photoshop installed correctly." при условии, что сам код фотошоп видит?

Суть такая, есть небольшой код, который через бота в телеграм берет инфу от пользователя(например некий текст) и вставляет в psd файл на нужном слое. Реализовано это через pyTelegramBotAPI и pythonPhotoshopAPI, но при запуске функции, где информация от пользователя посылается в функцию с фотошопом, код выдает ошибку - Please check if you have Photoshop installed correctly. Но если запустить эту же функцию не через бота, то никакой ошибки не будет и все сработает как и должно работать. В чем может быть проблема?

Что я уже пробовал - Переустановить фотошоп. Переустановить фотошоп на более новую версию. Установить path в переменные среды win. Использовать библиотеку pyWin32, чтобы открыть фотошоп очень не выгодно для меня.

вот сам вызов функции с фотошопом

@bot.message_handler(content_types=['text'])
def func(message):
    if(message.text == '/ph'):
        user_info = {'test' : 'asdsaasd'}
        test_edit_text(user_info)

вот сама функция

def test_edit_text(info_from):
    try:
        psApp = ps.Application() #открываем фш
        psApp.Open(r"mypath\first.psd") #открываем файл
        doc = psApp.Application.ActiveDocument
        print(info_from['test']) #сами данные
    

        #меняем в фш
        text_from= info_from['test'] 
        layer1= doc.ArtLayers["layer1"]
        new_text_onlayer= layer1.TextItem
        new_text_onlayer.contents = f"{text_from.upper()}"

        #экспорт
        options = ps.JPEGSaveOptions(quality=5)
        jpg = r'mypath\photo.jpg'
        doc.saveAs(jpg, options, True)
    except Exception as e:
        print(e)

Если запустить эту функцию просто ниже, не через бота, а вот так

user_info = {'test' : 'asdsaasd'}
test_edit_text(user_info)   

то все сработает.

Не знаю поможет ли это как то, но я нашел где эта ошибка внутри самой библиотеки и вот что там есть.введите сюда описание изображения


Ответы (1 шт):

Автор решения: Mattew Cox

Я использовал вариант, который открывает фотошоп через import os перед кодом, в этом случае все работает исправно.

os.startfile(r"mypath\Photoshop.exe")
psApp = ps.Application()
psApp.Open(r"mypath\first.psd")
doc = psApp.Application.ActiveDocument
→ Ссылка