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

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

ただいまの
回答率

88.13%

IDLE上でpygameライブラリが読み込めない。

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,240

score 1

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

プログラミング初心者、Pythonを先月から勉強し始めたものです。macOSでPython.org、IDLE、pip、anacondaのインストールを行い、IDLEをメインにコードの練習をしています。今回Pygameライブラリを読み込んだ所

Traceback (most recent call last):
  File "/Users/MyName/Desktop/justwindow.py", line 2, in <module>
    import pygame
ModuleNotFoundError: No module named 'pygame'

というエラーが発生してしまいました。MyNameの部分は私の名前でjustwindow.pyはファイル名です。以前もnumpyを読み込む際にも同じ様なエラーが発生してしまい

import sys; sys.executable # IDLEで実行
/Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8 -m pip install numpy #ターミナルで実行

この方法を実行することによって読み込みができました。おそらくこのmacOSにpipとanacondaのディストリビューションで重複したPythonやnumpyがあったことが原因だと思っています。この方法が今回も使えると思いnumpyの部分をpygameに変更して同じ様に実行したところとても長い文章のエラーが出てしまいました。

試したこと

https://teratail.com/questions/262126

解決策を探していた所、上記リンクのteratailの質問に行き着きpathを調べました。その結果ターミナル上のPythonとIDLEでは起動されるpathとバージョンが違うこと、ターミナル上でのPythonではpygameをインポート出来るということが分かりました。pipとanacondaをインストールしたロケーションが正しい場所ではなかったのかという考えも浮かびました。

import sys; sys.executable

sys.path

を試し、IDLE上では

/Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8

/Users/MyName/Desktop', '/Users/MyName/Documents', '/Library/Frameworks/Python.framework/Versions/3.8/lib/python38.zip', '/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8', '/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/lib-dynload', '/Users/MyName/Library/Python/3.8/lib/python/site-packages', '/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages

ターミナル上のPythonでは

/Users/MyName/opt/anaconda3/bin/python

'', '/Users/MyName/opt/anaconda3/lib/python37.zip', '/Users/MyName/opt/anaconda3/lib/python3.7', '/Users/MyName/opt/anaconda3/lib/python3.7/lib-dynload', '/Users/MyName/opt/anaconda3/lib/python3.7/site-packages', '/Users/MyName/opt/anaconda3/lib/python3.7/site-packages/aeosa'

という結果になりました。これらを見る限りIDLE上ではPython.orgでインストールしたpath、ターミナル上ではanacondaを使ったPythonのpathが使われてしまいそれぞれバラバラのPythonが開かれてしまっています。ということはanacondaのPythonをIDLEで開ければimportも使える、もしくはPython.orgのpathにanacondaをどうにかインストール出来ればPygameをIDLE上で読み込めるのではないかと考えました。ちなみにPygameのバージョンはpip、anaconda共に1.9.6でした。ここまでは何とか調べられたのですがpathの変更法、環境構築などはまだ初心者の為にお手上げです。

実現したいこと

IDLE上でimport pygameを読み込むこと、そしてそのIDLEをIDLEPython.orgのpathもしくはanacondaのPathどちらかに統合したもので開きけるようにし、今後はmacOSに入っているダウンロードした全てのライブラリを基本的にエラーを発生させず簡単に呼び出せるようにしたいです。長文になりまして申し訳ございませんがよろしくお願いします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

この方法が今回も使えると思いnumpyの部分をpygameに変更して同じ様に実行したところとても長い文章のエラーが出てしまいました。

エラーはインストール時でしょうか?
それとも、pygameを使って書いたスクリプトの実行時でしょうか?

インストール時であれば別問題かもしれませんが、
公式のものは問題が報告されてます。

Pygame not compatible with MacOS Mojave #555

Python3.8では pygame2.0で動作報告があるので
同じ方法でバージョンを指定を試してみてください。

/Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8 -m pip install pygame==2.0.0.dev10 #ターミナルで実行

インストール時の問題について

wikipedia によると サポートするPythonのバージョン は

pygame 1.9.xは、Python 2.7と、Python 3.4からPython 3.7まで。
pygame 2は、Python 3.4からPython 3.8をサポートする。Python 2.7のサポートも当面継続。

pypiのDownload filesリスト に osx用の 3.8はありません。

pygameがインストールされた環境の IDLEを開く

> /Users/MyName/opt/anaconda3/bin/python -m idlelib

で、その環境の IDLE を使えます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/20 03:07

    とても丁寧な回答ありがとうございます。参考にさせていただくことばかりです。やはり自分で情報を探す、触れる、纏めていくといったことが近道になっていくのですね。「内部への興味を持つ事」、「ライブラリや処理系のソースのコードリーディング」、今の私にはまだ難しいことかもしれませんがライブラリのディレクトリ等を通して地道に勉強していきたいと思います。github等も活用し視野を広げて、今後のプログラミングライフを謳歌していきたいと思います。とてもご丁寧なご回答本当にありがとうございました!

    キャンセル

  • 2020/07/20 12:38

    即戦力的な意味での「近道」とは違いますが、
    応用範囲の広い基礎を抑えておくことは、
    長期的には、大きな時間の節約に繋がりますね。
    自分から探す(能動的)という点も意識してます→ アクティブラーニング

    余談ですが、エッセイを思い出したので紹介。
    古いものですが、今でも通じる部分はあると思います。

    Peter Norvig 氏のエッセイ
    プログラミングを独習するには10年かかる
    https://www.yamdas.org/column/technique/21-daysj.html

    > 今後のプログラミングライフを謳歌していきたい
    上記のエッセイでも触れてるのですが、これが一番大切なことだと思います。
    楽しみながら自然と身についているのが理想ですよね

    キャンセル

  • 2020/09/10 10:31

    大変申し訳ございません、返信がかなり遅れてしまいました。。

    かなりプライベートな話ですが今月よりJava、Pythonを集団で学べる環境に身を置くことができました。自分の時間ができた時はアクティブラーニングを意識して応用範囲の広い基礎を抑えようと何とかやっております。

    Peter Norvig 氏のエッセイのリンクありがとうございました。読ませていただきましたがプログラミングに限らず物事の精進には大きい代償が必要ということは痛いほど分かりますので、挫折しそうな際には読み返させていただこうと思っております。

    繰り返しになりますが、ご丁寧な返信ありがとうございました!

    キャンセル

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

  • ただいまの回答率 88.13%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る