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

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

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

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Pygame

Pygameは、ビデオゲームの製作用に設計されたクロスプラットフォームのPythonモジュールセットです。Pythonでコンピューターグラフィックスと音声を扱うためのライブラリが含まれています。

Python

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

PyPy

PyPy(パイパイ)は、RPythonで記述されたPythonの実装のひとつです。CPythonとの互換性に重点を置いて開発されており、コードを必要に応じて機械語にコンパイルする「JITコンパイル機能」を備えています。

Q&A

解決済

1回答

2859閲覧

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

mattsershaw

総合スコア1

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Pygame

Pygameは、ビデオゲームの製作用に設計されたクロスプラットフォームのPythonモジュールセットです。Pythonでコンピューターグラフィックスと音声を扱うためのライブラリが含まれています。

Python

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

PyPy

PyPy(パイパイ)は、RPythonで記述されたPythonの実装のひとつです。CPythonとの互換性に重点を置いて開発されており、コードを必要に応じて機械語にコンパイルする「JITコンパイル機能」を備えています。

2グッド

1クリップ

投稿2020/07/07 03:22

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

プログラミング初心者、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に入っているダウンロードした全てのライブラリを基本的にエラーを発生させず簡単に呼び出せるようにしたいです。長文になりまして申し訳ございませんがよろしくお願いします。

teamikl, kakomya19👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

この方法が今回も使えると思い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/16 02:25

teamikl

総合スコア8664

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

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

mattsershaw

2020/07/16 05:56

teamikl様、回答ありがとうございます!長い文章のエラーに関してはターミナルでのスクリプトの実行時のエラーでした。教えて頂いたPygame 2.0のバージョン指定を試した所Python 3.8を使ったIDLEにてPygameが読み込めました!今まで読み込めなかった原因はPygameのバージョンによるものだったのですね。長い間解決しなかったものでしたからとても嬉しく思います。Anaconda経由でのIDLEの開き方の回答も助かりました。 ここでまたしても質問させて頂ければと思うのですが、今回のような教えて頂いたバージョン指定や、 idlelibを使った開き方などの環境設定方法はプログラミングのどういった分野を学べば理解が進み、詳しくなれるのでしょうか?度々の質問になってしまいますが書籍やウェブサイト等、参考になるものを教えて頂ければと思います。
teamikl

2020/07/16 08:47

公式のドキュメント、ソースコードを読むです。 書籍やウェブサイトは第三者がまとめた情報ですが、理解を進める~という点に於いて そこから一歩先と解釈すると、自分でそれらの情報元を探す手段を持つこと、自身で情報を纏める事。 - https://pip.pypa.io/en/stable/user_guide/ バージョン指定  他に、どういった仕組みでpipでライブラリがインストールされるか等の情報も、  インストール時の問題を解決する上で役立つ事があります。 - https://docs.python.org/ja/3/using/cmdline.html#command-line コマンドラインオプション - https://docs.python.org/ja/3/library/idle.html IDLEの開き方 (python -m idlelib) IDLEの開き方に関しては、IDLEのコードを読んだことがあったので知ったのですが、 ドキュメントにも、IDLE起動時にエラーが出て開けない場合の、 ターミナルから起動して起動時のエラーを確認する方法として書かれてます。 ---- どのような分野と言われると返答は難しいですが、学習方法に関しては持論を持っていて 指針として言うなら「内部への興味をもつ事」でしょうか。 ライブラリや処理系のソースのコードリーディングがお勧め。 一例を挙げると、pygameであれば、内部で使われているライブラリの SDL を使って C言語でプログラムを書いた事はあります。 また、pygameを使わず Python から SDL を利用する方法も複数学びました。 その上で pygame を使うと、例えばサンプルコード等を探すときに pygame のコードだけでなく SDL を用いた他の言語のコードも参考に出来るようになるので 活用できる情報の量が何倍にも膨れ上がります。この観点から英語とC言語はとても役立ちます。 コードリーディングの取っ掛かりとしては、 コマンドラインから起動できるものが他にもあるので、 ライブラリのディレクトリを探して、覗いてみるのも良いかもしれません。 - if __name__ == "__main__": がある .py ファイル (dis, timeit, http.server, ) - __main__.py があるディレクトリ (turtledemo, unittest, venv, ensurepip, ) - pygameであれば、python -m pygame.examples.aliens 他 examples ディレクトリ以下に多数 バグ報告等に関しては、 github 上のプロジェクトなら issue tracker に情報が集まってるので、 オープンソース系のプロジェクトでの開発を実際に見たり参加すると、 その辺りの事情には詳しくなると思います。
mattsershaw

2020/07/19 18:07

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

2020/07/20 03:38

即戦力的な意味での「近道」とは違いますが、 応用範囲の広い基礎を抑えておくことは、 長期的には、大きな時間の節約に繋がりますね。 自分から探す(能動的)という点も意識してます→ アクティブラーニング 余談ですが、エッセイを思い出したので紹介。 古いものですが、今でも通じる部分はあると思います。 Peter Norvig 氏のエッセイ プログラミングを独習するには10年かかる https://www.yamdas.org/column/technique/21-daysj.html > 今後のプログラミングライフを謳歌していきたい 上記のエッセイでも触れてるのですが、これが一番大切なことだと思います。 楽しみながら自然と身についているのが理想ですよね
mattsershaw

2020/09/10 01:31

大変申し訳ございません、返信がかなり遅れてしまいました。。 かなりプライベートな話ですが今月よりJava、Pythonを集団で学べる環境に身を置くことができました。自分の時間ができた時はアクティブラーニングを意識して応用範囲の広い基礎を抑えようと何とかやっております。 Peter Norvig 氏のエッセイのリンクありがとうございました。読ませていただきましたがプログラミングに限らず物事の精進には大きい代償が必要ということは痛いほど分かりますので、挫折しそうな際には読み返させていただこうと思っております。 繰り返しになりますが、ご丁寧な返信ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問