teratail header banner
teratail header banner
質問するログイン新規登録

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

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

新規登録して質問してみよう
ただいま回答率
85.30%
Python

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

Q&A

1回答

286閲覧

Pyhthon : pyinstallerエラー

zero_kawasaki

総合スコア0

Python

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

0グッド

0クリップ

投稿2025/05/02 03:34

0

0

質問
pythonでレトロゲームを開発しているが、最後pyinstallerを用いてexeファイル化しようとしたところ、
下記エラーがでた。

SyntaxError: invalid or missing encoding declaration

pythonの環境は最新となっており、pyinstallerもinstall済みとなっている

解決方法を教えてください

※教材はyoutuberサプーさんの[レトロゲームを作ろう]の動画で勉強

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

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

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

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

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

MasahikoHirata

2025/05/02 03:36

'# coding: utf-8'は書いてありますか?
zero_kawasaki

2025/05/02 03:39

早々のご返信ありがとうございます。 '# coding: utf-8'は書いてありますか? →書かれていません。 動画内では書いていなかったのですが書く必要があるのでしょうか? また書く場合どこに入れるとか決まっていますか?
MasahikoHirata

2025/05/02 03:46

プログラムの先頭です。 まあpython3ではデフォルトでUTFと思いますが。 それとエディタで保存の際に[UTF]で。 SHIFT-JISとか別の場合にもこのエラーが出ます。
zero_kawasaki

2025/05/02 03:54

先頭に'# coding: utf-8'を書きましたが、同じエラーがでました。 エディタで保存の際[UTF]とはどういうことですか
MasahikoHirata

2025/05/02 03:57

何で編集してますか?VScode?メモ帳? 保存の際にUTFで。
tatsu99

2025/05/02 04:28 編集

すみません、横から失礼します。 >エディタで保存の際[UTF]とはどういうことですか 「エディタで保存するとき、文字コードの指定をUTF-8にして、保存してください」ということかと思います。
TakaiY

2025/05/02 04:40

エラー内容は省略せず、投入したコマンドを含めて提示ください。 エラーの内容には解析するために必要な情報がたくさん含まれています。質問を編集する際に</> ボタンで出る```と```の間に入れるとみやすいでしょう。 言語はtextあたりで > pythonの環境は最新 具体的なバージョンを記載してください。バージョンを下げると上手くいく場合もあります。
MasahikoHirata

2025/05/02 04:57

tatsu99さん、端折った回答してすみません。ご指摘の通りです。
zero_kawasaki

2025/05/03 08:55

PS C:\Users\khk03\OneDrive\デスクトップ\Python1> cd pc PS C:\Users\khk03\OneDrive\デスクトップ\Python1\pc> pyxel app2exe ..\レトロゲーム.pyxapp C:\Users\khk03\AppData\Local\Programs\Python\Python313\python.exe -m PyInstaller --windowed --onefile --distpath . --add-data ..\レトロゲーム.pyxapp;. --hidden-import pyxel C:\Users\khk03\AppData\Local\Temp\.pyxel\app2exe\レトロゲーム.py 720 INFO: PyInstaller: 6.13.0, contrib hooks: 2025.3 721 INFO: Python: 3.13.3 769 INFO: Platform: Windows-11-10.0.26100-SP0 769 INFO: Python environment: C:\Users\khk03\AppData\Local\Programs\Python\Python313 772 INFO: wrote C:\Users\khk03\OneDrive\デスクトップ\Python1\pc\レトロゲーム.spec 801 INFO: Module search paths (PYTHONPATH): ['C:\\Users\\khk03\\OneDrive\\デスクトップ\\Python1\\pc', 'C:\\Users\\khk03\\AppData\\Local\\Programs\\Python\\Python313\\python313.zip', 'C:\\Users\\khk03\\AppData\\Local\\Programs\\Python\\Python313\\DLLs', 'C:\\Users\\khk03\\AppData\\Local\\Programs\\Python\\Python313\\Lib', 'C:\\Users\\khk03\\AppData\\Local\\Programs\\Python\\Python313', 'C:\\Users\\khk03\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\site-packages', 'C:\\Users\\khk03\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\site-packages\\setuptools\\_vendor', 'C:\\Users\\khk03\\AppData\\Local\\Temp\\.pyxel\\app2exe'] 1907 INFO: Appending 'datas' from .spec 1908 INFO: checking Analysis 1908 INFO: Building Analysis because Analysis-00.toc is non existent 1908 INFO: Running Analysis Analysis-00.toc 1908 INFO: Target bytecode optimization level: 0 1909 INFO: Initializing module dependency graph... 1911 INFO: Initializing module graph hook caches... 2082 INFO: Analyzing modules for base_library.zip ... 6041 INFO: Processing standard module hook 'hook-encodings.py' from 'C:\\Users\\khk03\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\site-packages\\PyInstaller\\hooks' 10584 INFO: Processing standard module hook 'hook-pickle.py' from 'C:\\Users\\khk03\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\site-packages\\PyInstaller\\hooks' 13928 INFO: Processing standard module hook 'hook-heapq.py' from 'C:\\Users\\khk03\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\site-packages\\PyInstaller\\hooks' 17202 INFO: Caching module dependency graph... 17313 INFO: Looking for Python shared library... 17321 INFO: Using Python shared library: C:\Users\khk03\AppData\Local\Programs\Python\Python313\python313.dll 17322 INFO: Analyzing C:\Users\khk03\AppData\Local\Temp\.pyxel\app2exe\レトロゲーム.py Syntax error in C:\Users\khk03\AppData\Local\Temp\.pyxel\app2exe\レトロゲーム.py encoding = find_cookie(first) File "C:\Users\khk03\AppData\Local\Programs\Python\Python313\Lib\tokenize.py", line 398, in find_cookie raise SyntaxError(msg) SyntaxError: invalid or missing encoding declaration 上記エラーコードです またファイルの種類でpythonを選択していますが、これをUTF-8にするのですか。 それともファイル名の後ろにUTF-8と入れるのでしょうか
guest

回答1

0

そのエラー SyntaxError: invalid or missing encoding declaration は、Python がファイルの文字コードを正しく認識できていない時ものです
日本語がおそらくプログラムの中に入ってますよね。非ASCII文字と言いますが、日本語の文字(漢字かなカナ記号など)をコンピュータが読むにはエンコーディング指定というものが必要です。

おそらくShift-JISかUTF-8のはずで、UTF-8がグローバルスタンダードなのですが日本のOSやエディタなどだとShift -JISの場合が多いです。それがpyinstallerのデフォルトと合っていないので わからん文字があるぞエンコードを指定してくれ 見たいのなことです。

以上でわかる、という方であれば文字コード指定をなさってください?
何のこと?と言う方であれば

  • 日本語た大量に使われてなければそこを消すかローマ字などで一旦は置き換えて実行してみる
  • pyinstaller 文字コード あたりでググって調べてみる それでもわからなければOS、使用しているエディタ、プログラム(すべてが難しければ該当しそうな箇所など)などを補足して追加でご質問なさってみてください。

補足:
可能性ありそうな対処方法

  • 案1. Pythonファイルの先頭にエンコーディング宣言を追加

python

1# -*- coding: utf-8 -*-
  • 案2. エディタでファイル保存する時の文字コードを確認
    • ファイルがUTF-8で保存されていること

投稿2025/05/03 04:52

aokikenichi

総合スコア2264

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

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

zero_kawasaki

2025/05/03 09:00

ファイルを日本語から英語にしたらできました! 英語の場合はファイル名の最後にUTF-8をつければいいのでしょうか
aokikenichi

2025/05/03 11:15

> 英語の場合はファイル名の最後にUTF-8をつければいいのでしょうか 仰っている意味がよくわからず。文字コード について少し学ばれた方が良いかと思います。 ファイル全体について文字コードというものがあります。 半角アルファベットや数字などはASCIIコードというもので世界共通で問題になることはありません。 日本語のような全角文字の場合は文字コードが色々なバリエーションがあり、それが違うと読めません。 人間の目には同じに見えてもコンピュータは見えないので文字コードだけで判断します。 Shift-JISで書かれたものとUTF-8で書かれたもの 人間には見た目同じ(エディタなどがそれに対応して表示しているから) pyinstallerなどのプログラムやライブラリやツール コードの指定がないとわからないことがある です。 英語ではなく半角文字だけならばASCIIコードという文字コードなので指定しなくても大丈夫です。 日本語が入ると文字コードのバリエーションがあります。ツールによっては自動判別してくれることもありますが、ツールによっては明示的に指定しないとエラーになります。 ここ面倒だなと思われると思いますが 正直面倒です。でもこれITの人ほとんど全てが苦労しているところです。 ここを面倒でもきちんと理解すると大きく飛躍できます。頑張ってください。 また、わからないことがあれば質問なさってください。
zero_kawasaki

2025/05/04 03:33

承知いたしました。 ご指摘頂きましてありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問