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

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

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

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

Q&A

解決済

1回答

3086閲覧

pygameのインポート

heiheihei

総合スコア9

Python

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

0グッド

0クリップ

投稿2020/10/31 16:39

いつもお世話になったおります。
初歩的な質問で申し訳ございません。

Macでviscoseを使っています。
python3.6.5でpygameをインストールして、インポートしようとしたのですが、
「ModuleNotFoundError:No module named ‘pygame.base’」
とエラーになってしまいました。pygameがないという記事はよく見かけて、参考にしたのですが、pygame.baseはあまり見かけなく、困っております。

大変恐縮ですが、ご教示いただければ幸いです。よろしくお願いいたします。

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

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

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

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

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

toast-uz

2020/10/31 22:26

どうやってインストールしたのでしょうか?
heiheihei

2020/11/01 09:37

返信遅くなり申し訳ありません。  ターミナルで"python3 -m pip install --user pygame"でインストールしました。 ターミナル上で、サンプルのゲームは開けたのでインストールはできてると思われます。 この段階で、インポートすると、"ModuleNotFoundError:No module named ‘pygame’”となりました。そのため、パスが違うのかと思い、"print(sys.path)"を見たところ、pygameがインストールされた場所とは、異なる場所が参照されていたため、"sys.path.append('pygameがインストールされたパス')"で追加しました。そして、またインポートすると、上記のようなエラーになった次第です。  知識不足で稚拙なご説明になっているかもしれませんが、よろしくお願いいたします。
toast-uz

2020/11/01 11:09

システム共通のライブラリと、ユーザライブラリが競合している感じですね。 ルート権限でライブラリインストールすることに拒否感が無ければ python3 -m pip uninstall --user pygame sudo python3 -m install pygame を試してみてください。sys.path.appendは不要です。
heiheihei

2020/11/01 13:25

ご回答ありがとうございます。 ご提案いただいたコードを試したのですが、 No module named install と出てしまいました。
toast-uz

2020/11/01 13:44

すみません。pipが抜けていました。 sudo python3 -m pip install pygame
toast-uz

2020/11/01 13:47

上記実行で、既にあるぞ的なことを言われたら sudo python3 -m pip install -U pygame としてください。
heiheihei

2020/11/01 14:01

sudo python3 -m pip install pygameでインストールすることができました。しかし、インポートはやはり、 ModuleNotFoundError:No module named ‘pygame"' と出てきてしまいます。私が、最初に pyenv install 3.9.0とpythonをダウンロードし、その後、 pyenv install 3.6.5とpythonをダウンロードし、pyenv global 3.6.5としたことが関係あるのでしょうか。 pythonのバージョンは3.6.5で出るのに、sys.pathは「/python3.9/site-package」が選択されているので、気になってしまって。
toast-uz

2020/11/01 14:33

python3コマンドはpyenvで仮想化されないため、直接python3.9が実行されているものと思います。 pyenv環境でpython3コマンドを使ってはダメです。 ますは混乱しないようにpython3.9をアンインストールしてください。 その後、sudo python3 -m は使わずにpip install pygameだけでpygameインストールしてください。
heiheihei

2020/11/01 14:40

すいません。pythonをダウンロードする際に参考にしたサイトをそのまま写していた為、自身でも理解せず間違えていたようです。お手数おかけしてしまい大変申し訳ございません。 詳しく教えていただき誠にありがとうございます。 python3.9のアンイストール方法を調べてから、ご提案いただいたフローを行ってみたいとおもいます。
toast-uz

2020/11/01 14:53

pyenv install 3.9.0でインストールしたのなら、 pyenv uninstall 3.9.0 でアンインストール出来ます。
heiheihei

2020/11/01 15:15

アンインストールできました。ありがとうございます。 すいません、恥の上塗りで申し訳ないのですが、 no such file or directory と出ます。パスの再設定はどのようにすればよろしいのでしょうか、、、
toast-uz

2020/11/01 22:00

何をするとそう出ますか? MacOSのバージョンも教えてください。 $HOME/.bashprofileか$HOME/.zprofileに3.9が書かれていませんか?
toast-uz

2020/11/01 22:47

export PATH=/Library/Frameworks/Python.framework/Versions/3.9/bin:$PATH といった文が含まれていると思います。 ここまでの段階で回答を書いておきます。
heiheihei

2020/11/02 12:07

MacOS 10.15.6です。 ご提案いただいていた ①3.9.0のアンインストール ②python3 -m pip uninstall --user pygame ③pip install pygame の順で行ったら無事にインポートできました。誠にありがとうございます。 昨日は、①と③のみを行い3.9のファイルが見つかりませんと出てきていました。 現状は.pyenv下の3.6.5下にpygameが保存されています。 回答でご指摘いただいていたとおり、pyenvの理解が浅く、まるで使いこなせいませんでした。生pythonの使いからを勉強しそちらに切り替えたいと思います。 ありがとうございます。
toast-uz

2020/11/02 12:13

解決してなによりです。今後も遠慮なく質問してください。
heiheihei

2020/11/02 12:15

お気遣いありがとうございます。 何卒よろしくお願いたします。
heiheihei

2020/11/02 12:48

すいません。回答していただいてすぐに申し訳ないのですが、pyenvから生pythonに切り替える際に参考になるサイトなどあればご教授いただきたいです。 お手隙に際にご検討いただけましたら幸いです。
toast-uz

2020/11/02 13:25

pyenvは魔窟なので笑、アンインストール手順は、サイトごとに微妙に異なりますね。 だいたいは brew uninstall pyenv rm -rf ~/.pyenv ~/.zprofile、~/.zshrc、~/.bash_profile、~/.bashrc の中でpyenvと書かれている箇所を消す で消せそうです。そうすれば、python3、pip3で生Pythonの3系最新バージョンが使えます。 (私はvenvしか使いませんが) venvは公式情報があるので、迷うことがありません。https://docs.python.org/ja/3/library/venv.html
heiheihei

2020/11/02 14:08

何度もすいません。誠にありがとうございます。 無事、生pythonに変更することができました。 venvも今回のような理解しないでとりあえず入れてみた、にならないようにしっかりと学んでから、 導入してみようと思います。 本当にありがとうございました。
guest

回答1

0

ベストアンサー

3つの事象が重なっていたようです。

  • pyenvを使っているにも関わらず、python3コマンドでパッケージインストールやpython実行をしていたため、生pythonを使っていた。
  • パッケージインストールの方法が、ケースバイケースで一貫していなかった。
  • 生PythonがPython3.9であったため、各種パッケージの対応状況が不十分であった。なお、pygameそのものはPython3.9への対応済を表明しています。

対応として、Python3.9のアンインストール、今までインストールしたpygameのアンインストール後に、pyenv下で単純にpip install pygameによりpygameをインストールすること、をオススメします。

個人的には、pyenvそのものをオススメしません。初級者には運用が難しく、海外であまり使われておりません。生pythonを使うか、Python公式のvenvを使う方が良いと思います。書籍「自走プログラマー」には、「プロはpyenvは使わない」と書かれています。

参考:

投稿2020/11/01 23:09

toast-uz

総合スコア3266

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問