kivyの実行時のエラーメッセージと警告メッセージの対策方法をまとめました。VSCodeで出力されるエラーメッセージなります。
AttributeError
kivy.properties.ObservableDict.getattr
AttributeError: ‘super’ object has no attribute ‘getattr‘. Did you mean: ‘setattr‘?
多くはid関連のエラーになります。
- インスタンスが生成されていない状態で、idsを参照している。
- idのスコープ外を参照している。
- id名が一致していない、設定されていない。
- idsの名前空間が間違えている。
BuilderException
in create_handler
raise BuilderException(rule.ctx, rule.line,
kvファイルのルール構文が合っていない、構文を間違えている。
AssertionError
assert rule not in self.rulectx
kvファイルのルールの構文が合っていない。ルールとして存在しない構文で書かれている。
ParserException
Invalid indentation, must be a multiple of 8 spaces
インデントの数が合っていない。正しい位置にインデントされていない。
Only one root object is allowed by .kv
kvファイルのインデントが合っていない。インデントがないため複数のルートルールが書かれていると認識されている。
Invalid data after declaration
インデントが正しくない。もしくはidを定義する箇所が間違えている。idはプロパティの最初に宣言します。
>> 11: id: popup
12: auto_dismiss: False
13: title: "Test popup"
...
Invalid data after declaration
SyntaxError
SyntaxError: unterminated string literal
構文エラー。引用符がない、または未完成。文字列型は一重引用符か二重引用符で囲む
raise Exception
in template
raise Exception(‘Unknown <%s> template name’ % name)
Exception: Unknown template name
テンプレートを使用してBuilder.template()でインスタンスの生成を行っていると思われるが、テンプレート機能はKivy1.7.0で非推奨になっているため、Builder.template()を使うとエラーが発生します。テンプレートの代わりに動的クラス(Dynamic Classes)とFactory()を使用することをお勧めします。
Warning
TIFFReadDirectory: Warning, Unknown field with tag 20740 (0x5104) encountered.
TIFF形式の画像を使用するとこの警告メッセージが表示される場合があります。この警告メッセージは、TIFFファイルに含まれている情報(タグ)に標準仕様にはない拡張情報が含まれているために発生します。画像の読み込みや表示に影響はありません。
[WARNING] Both Window.minimum_width and Window.minimum_height must be bigger than 0 for the size restriction to take effect.
ウィンドウの最小サイズを設定すると表示される警告メッセージです。Window.minimum_widthとWindow.minimum_heightの両方を定義しないと機能しません。これら両方を設定していても表示されるメッセージです。
Comment