micromeow
@micromeow

Почему PythonPhotoshopAPI не видит фотошоп?

Не понимаю почему, но код выдает ошибку "Please check if you have Photoshop installed correctly.", когда пытаешься открыть psd файл, но это только тогда, когда функция вызывается где то в другом .py файле. Если просто запустить код с функцией, то сам скрипт выполняет свою функцию. (суть простая, поменять текст слоя на тот, который ввел пользователь)

from distutils.text_file import TextFile
import photoshop.api as ps
import os
from photoshop import Session


app = ps.Application()

def get_psd_files():
    files = {}
    this_root = os.path.dirname(__file__)
    file_root = os.path.join(this_root, "files")
    for file_name in os.listdir(file_root):
        files[file_name] = os.path.join(file_root, file_name)
    return files

PSD_FILE = get_psd_files()
test_path = PSD_FILE["first.psd"]

x = {'test' : 'getsdf'}

def test_edit_text(info_from):
    print(app)
    print(info_from['test'])
    text_for_layer = info_from['test']
    try:
        with Session(test_path, action="open") as ps:
            doc = ps.active_document
            art_layer = ps.active_document.artLayers.getByName("layer1")
            art_layer.kind = ps.LayerKind.TextLayer
            art_layer.textItem.contents = text_for_layer
            options = ps.JPEGSaveOptions(quality=5)
            jpg = r'mypath\photo.jpg'
            doc.saveAs(jpg, options, asCopy=True)
    except Exception as e:
        print(e)

test_edit_text(x)


Все просто, здесь я вызвал функцию test_edit_text с аргументом в виде словаря "x" и все сработало, но если вызвать эту же функцию с таким же словарем, но только в другом файле, то выдаст ошибку, в чем может быть проблема?
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
micromeow
@micromeow Автор вопроса
Я использовал вариант, который открывает фотошоп через import os перед кодом, в этом случае все работает исправно.

os.startfile(r"mypath\Photoshop.exe")
psApp = ps.Application()
psApp.Open(r"mypath\first.psd")
doc = psApp.Application.ActiveDocument
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы