質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1150閲覧

Python PowerPoint 自動化 エラー

DjangoUser

総合スコア24

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/08/19 12:05

編集2022/08/19 12:07

実現したいこと

PythonでPowerPointを自動化したい

発生している問題・エラーメッセージ

エラーが表示されて実行できません。

Traceback (most recent call last): File "C:\Users\hirom\AppData\Local\Programs\Python\Python310\lib\site-packages\pptx\compat\__init__.py", line 10, in <module> Container = collections.abc.Container AttributeError: module 'collections' has no attribute 'abc' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "c:\Users\hirom\Desktop\python_pptx\new.py", line 1, in <module> from pptx import Presentation File "C:\Users\hirom\AppData\Local\Programs\Python\Python310\lib\site-packages\pptx\__init__.py", line 14, in <module> from pptx.api import Presentation # noqa File "C:\Users\hirom\AppData\Local\Programs\Python\Python310\lib\site-packages\pptx\api.py", line 15, in <module> from .package import Package File "C:\Users\hirom\AppData\Local\Programs\Python\Python310\lib\site-packages\pptx\package.py", line 6, in <module> from pptx.opc.package import OpcPackage File "C:\Users\hirom\AppData\Local\Programs\Python\Python310\lib\site-packages\pptx\opc\package.py", line 11, in <module> from pptx.compat import is_string, Mapping File "C:\Users\hirom\AppData\Local\Programs\Python\Python310\lib\site-packages\pptx\compat\__init__.py", line 14, in <module> Container = collections.Container AttributeError: module 'collections' has no attribute 'Container'

該当のソースコード

Python

1from pptx import Presentation 2from pptx.util import Inches, Pt, Cm 3 4import datetime 5 6now = datetime.datetime.now() 7today = now.strftime('%Y年%m月%d日') 8 9save_name = 'test.pptx' 10prs = Presentation() 11 12# 1枚目 13title_slide_layout = prs.slide_layouts[0] 14slide = prs.slides.add_slide(title_slide_layout) 15title = slide.shapes.title 16subtitle = slide.placeholders[1] 17title.text = "Pythonでパワポを作成してみた" 18subtitle.text = today 19 20# 2枚目 21title_slide_layout = prs.slide_layouts[1] 22slide = prs.slides.add_slide(title_slide_layout) 23title = slide.shapes.title 24subtitle = slide.placeholders[1] 25title.text = "目次" 26body_shape = slide.placeholders[1] 27 28p = body_shape.text_frame.add_paragraph() 29p.text = '1. pythonでパワポを作るために' 30p.level = 1 31p = body_shape.text_frame.add_paragraph() 32p.text = '2. 必要なライブラリのインストール' 33p.level = 1 34p = body_shape.text_frame.add_paragraph() 35p.text = '3. 動作確認' 36p.level = 1 37p = body_shape.text_frame.add_paragraph() 38p.text = '4. まとめ' 39p.level = 1 40 41# 3枚目 42title_slide_layout = prs.slide_layouts[1] 43slide = prs.slides.add_slide(title_slide_layout) 44title = slide.shapes.title 45title.text = "pythonでパワポを作るために" 46 47body_shape = slide.placeholders[1] 48p = body_shape.text_frame.add_paragraph() 49p.text = '1. python-pptxを使えば実現可能!' 50p.level = 1 51 52# 4枚目 53title_slide_layout = prs.slide_layouts[1] 54slide = prs.slides.add_slide(title_slide_layout) 55title = slide.shapes.title 56subtitle = slide.placeholders[1] 57title.text = "2. 必要なライブラリのインストール" 58body_shape = slide.placeholders[1] 59p = body_shape.text_frame.add_paragraph() 60p.text = '次のコマンドをターミナルにて実行' 61# p.level = 2 62p = body_shape.text_frame.add_paragraph() 63p.text = 'pip install python-pptx' 64p.level = 1 65 66# 5枚目 67title_slide_layout = prs.slide_layouts[1] 68slide = prs.slides.add_slide(title_slide_layout) 69title = slide.shapes.title 70title.text = "3. 動作確認" 71body_shape = slide.placeholders[1] 72 73p = body_shape.text_frame.add_paragraph() 74p.text = "プログラムを動かしてみよう!" 75p.level = 1 76p.font.bold = True 77 78# 6枚目 79title_slide_layout = prs.slide_layouts[1] 80slide = prs.slides.add_slide(title_slide_layout) 81title = slide.shapes.title 82subtitle = slide.placeholders[1] 83title.text = "4. まとめ" 84body_shape = slide.placeholders[1] 85subtitle.text = "python-pptxを使えば、簡単にパワポが作れちゃう!!" 86 87prs.save(save_name) 88print("ファイルの書き出し完了しました")

試したこと

特にないです。原因がわかりません。

補足情報(FW/ツールのバージョンなど)

Python 3.10.6
Windows 10 Home
Visual Studio Code 1.70.2(user setup)
python-pptx 0.6.21

参考サイト

https://aiacademy.jp/media/?p=1790
このサイトのコードを学習用に使いました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2022/08/19 12:31

質問者さんのコードの中でのエラー発生個所は何処でしょうか?
DjangoUser

2022/08/19 12:42

エラーに書いてあると思います。 Visual Studio Code では特に何も警告や注意箇所がありませんでした。
meg_

2022/08/19 12:51

「from pptx import Presentation」ですか? そもそもモジュールがインポートできないということですか。了解しました。
guest

回答1

0

ベストアンサー

下記でエラー回避できるかもしれません。(Windows11 + Python 3.10.4 + python-pptx-0.6.21で検証済)

Python

1import collections 2import collections.abc 3from pptx import Presentation

参考:Fail: AttributeError: module 'collections' has no attribute 'Container'

投稿2022/08/19 13:01

meg_

総合スコア10580

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

DjangoUser

2022/08/20 01:19

回答ありがとうございます。 これを実行してみましたが、解決しませんでした。
DjangoUser

2022/08/20 01:20

回答ありがとうございました。やはり、import collectionsとimport collections.abcをpptxの前に入れたら解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問