Pythonの実行環境で,既に32bit用のpythonと64bit用のpythonが入っているようですね.
最初に示していただいたコマンドプロンプトの画面冒頭では,
C:¥users¥Owner> pip3 install pygame
Requirement already satisfied: pygame in c:¥users¥owner¥appdata¥local¥programs¥python¥python38¥lib¥site-packages (2.1.2)
となっており,64bit版のpython3.8のライブラリファイルにインストールされているようです.
しかし,実行してエラーが出たときの画面冒頭には
== RESTART: C:¥Users¥Owner¥AppData¥Local¥Programs¥Python¥Python38-32¥tests.py ==
と表示されているではありませんか,python3.8-32は32bit版のようですね,そして先ほどは64bit版の方にpygameをインストールしました.
もちろん正常に64bit版の方にpygameはインストールされていますし,32bit版の方にはインストールされていないのでこのような状態になるというわけです.
結論
ライブラリをインストールするときは下記コマンドで行うようにしましょう.
$ python3 -m pip install pygame
banbenさんの書き方であればpip3を用いたpygameのインストール先は64bit版python3を指していましたが,プログラムを実行する際には32bit版を用いていました.この書き方であれば,プログラムを実行するpython3を用いてpipでインストールするため,先ほどのようなややこしい事態を避けることができます.
直らなければ教えてください.
なんで64bitCPUの時代に32bit版をインストールしたのかわかりませんが,とにかく今回はpython3が2つあることに起因するものです.
どのアプリ(コマンド)がどこにインストールされているか確認する手法としては,
$ where pip3
$ where python3
とコマンドプロンプトで実行してみれば良いでしょう.どこのpip3を実行するのか,どこのpython3を実行するのか調べてくれます.おそらく今回であればpip3は64bit版のフォルダを指し,python3は32bit版の方を指すのではないでしょうか.
また,実際に入力しようとしたソースコードですが,誤字脱字が多々あって動かなかったので,修正しておきました.
tests.py
import pygame
import sys
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
def main():
pygame.init()
pygame.display.set_caption("はじめてのPygame")
screen = pygame.display.set_mode((800, 600))
clock = pygame.time.Clock()
font = pygame.font.Font(None, 80)
- tmt = 0
+ tmr = 0
while True:
tmr += 1
for event in pygame.event.get():
- if event.type == pigame.QUIT:
+ if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
txt = font.render(str(tmr), True, WHITE)
screen.fill(BLACK)
- svreen.blit(txt, [300, 200])
+ screen.blit(txt, [300, 200])
pygame.display.update()
- clook.tick(10)
+ clock.tick(10)
if __name__ == "__main__":
main()
画像でコードを載せていただくより,
```python
import pygame
import sys
def main():
pygame.init()
...
```
のようにして書いていただくと,コピペもしやすくなりますので,Markdownの書き方もこの際学んでくれるとありがたいです.
ご健闘を祈ります.