2020/04/04

日経ソフトウェア2020年3月号 特集3が動かない(追記あり)



---sprite.py---
# -*- coding: utf-8 -*-
# SPRITE TEST
import pgzrun
WIDTH = 800
HEIGHT = 600
def draw():
    screen.fill('BLUE')
    #player.draw() # スプライトを描画
 
    screen.draw.line((0, 300), (799, 300), 'WHITE')
#def update():
#    global player
#    player.angle += 1 # スプライトの角度を+1する
 
# スプライトの作成
player = Actor('p1_walk03.png', (400, 300))
pgzrun.go()
--------------


----Error----
  File "C:\Users\xxxx\Anaconda3\lib\site-packages\pgzero\loaders.py", line 102, in validate_root
    subpath=self.subpath, type=self.TYPE, name=name
KeyError: "No 'images' directory found to load image 'p1_walk03.png'."

-------------

ファイルが見つからないというエラーですが、ファイル名に間違いがなく、存在していることは確認できています。

紙面の解説ではAnacondaを使うとあるので、
Jupyter Notebookの問題
が考えられる。

player = Actor('p1_walk03.png', (400, 300))
これを、
player = Actor('C:\Dropbox_xxxx\Dropbox\JupyterHome\nksw\2020-03\p1_walk03.png', (400, 300))

KeyError: "No 'images' directory found to load image 'C:\\Dropbox_xxxx\\Dropbox\\JupyterHome\nksw\x820-03\\p1_walk03.png'."

と、バックスラッシュ1つが2つになるという状態で、いくら調べても対処の方法がわからず。。

2つを1つにする方法はあるけど、逆が無い。「\2」のところも「\x8」と化けてますね。


WindowsとJupyterNotebookの組み合わせで学習するのは余計なトラブルで時間がかかってしまうのかも。Macは使いづらいし、どうしよう。

***** ----- ***** ----- *****

2020/04/05 追記

昨夜、エラーログを改めて読んでみると、「loaders.py」とあるので、loaders.pyがあるディレクトリを探して、そこにスクリプトと画像ファイルをおいてもNG、さらにエラーログを読むと、、「"No 'images' directory found」とあります。

「imagesディレクトリが見つかりません」とあたりをつけて、imagesディレクトリを作成して、その中に画像ファイルを格納したら動きました!!

…そして本を読み進めていくと、そのようにフォルダを作成するように記載されてるんですよね。。ってか、説明の進め方がわかりづらい。。

今回は以下の順で説明されています。

1. 「画像ファイルをダウンロード」
2. 「画像ファイル名を小文字に変換して1つのフォルダーにまとめる」
3. 「スクリプトはリスト2のとおりです」
4. 「スクリプトの書式は~」
5. 「imagesフォルダを作成して格納します」

これの3を作成した段階で実行してたのでNGになってたというわけです。。

自分の早とちりもアレですが、1→5→2みたいな順にしてくれればいいのに。

他のPythonテキストでも、一度NGになるとしばらくそこでトラブルシュートでハマって、解消せず、諦めて読み進めるとしばらく後のページで説明されてて解消ということがあったので、うまく動作しなくとも、いったんその章は流し読みでも進めるという方法にしないとと改めて思いました。

色々調べるんで、調査力は付いてると思うけど時間の消費がハンパない。。

0 件のコメント: