Python PPTX 库问题 - 替换幻灯片中的图像('SlidePart' 对象没有属性 'related_parts')

Python PPTX library issue - Replacing image in slides ('SlidePart' object has no attribute 'related_parts')

我使用 PPTX 库每周自动创建一组幻灯片。 在图书馆的最后一次更新之前,它工作得非常好。正如您在下面看到的,我在更新幻灯片的“图像部分”时不断收到以下信息:


AttributeError: 'SlidePart' 对象没有属性 'related_parts'


这是我的图像替换函数:


def replace_img_slide(prs, slide_nbr, shape_nbr, img_path):

slide = prs.slides[slide_nbr]
img = slide.shapes[shape_nbr]
try:
    imgPic = img._pic
except AttributeError:
    raise AttributeError(
        f"Error for slide: {slide_nbr}, shape: {shape_nbr}, path: {img_path}")
imgRID = imgPic.xpath('./p:blipFill/a:blip/@r:embed')[0]
imgPart = slide.part.related_parts[imgRID]

with open(img_path, 'rb') as f:
    rImgBlob = f.read()

# replace
imgPart._blob = rImgBlob

return prs

我找到了一些相关的主题,我了解到“related_parts”在新版本的库中已经过时了,但我没有找到解决方法。你觉得你能帮我吗?

非常感谢您的帮助!

只需在以前使用 part.related_parts[imgRID] 的地方使用 part.related_part(imgRID)

最新版本公开了该方法(内部),而不是公开一个 dict 类对象来完成那一项工作。