upaupanuo39
@upaupanuo39 (Syouzi Yamanaka)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

No module named ‘bs4’の原因がわかりません。

DB871084-F560-47C7-B819-92C40D23573A.jpeg
この写真のようにNo module named 'bs4'とエラーが出ます。
自分で調べたところ、
1.Beautiful Soup4がインストール出来ていない。
2.pythonのパスが通っていない。
3.複数個のpythonがインストールされている。

このうち1と2は以下の写真より、問題ないと思っています。
F1B42C6F-DBE8-4A34-8330-1F5038903A66.jpeg
2F48EF77-2F9C-47D2-94A5-6C4FCADC09D3.jpeg

しかし、3の「複数個のpythonがインストールされている」というのが問題だと思うのですが、cmdのpythonが3.8.3でエディタの方のpythonは3.10.4となっています。また、この問題の解決策としてwhere pythonを用いてファイルの位置は特定できたのですが、後の“複数個の重なっているバージョンを削除する”という仕方が分かりませんでした。
7B623B63-E2BD-4660-9B37-F9C90B2314F4.jpeg
このエラーの問題は複数個のpythonがインストールされているからでしょうか?また、その他の問題点などあれば教えていただけると幸いです。

0

3Answer

おそらくバージョンの問題で正しいです。パスが通って実行しているのと違う場所にpip installしています。複数バージョン問題はpythonのやっかいなところです。

急場を凌ぐならpy -3.8 hoge.py のように実行するか、py -3.10 -m pip install bs4のようなインストールを試すとよいかと。

この辺の記事がWindowsで優しそうです。
https://gammasoft.jp/python/python-version-management/

根本的には、インストールされているパッケージを明確にするためにpyenvなどのバージョン管理システムの利用か、dockerなどの仮想環境の利用をオススメします。
要するに、常に1つのバージョンしかインストールされてない環境を用意するということですね。

3Like

Comments

  1. @upaupanuo39

    Questioner

    了解しました!一度dockerの環境構築をしようと思います!

3つ目の%USERPROFILE%\AppData\Local\Microsoft\WindowsApps\pythoon.exeに関しては,Windowsの設定から消滅させることができます.

CMDで直接叩いて出たバージョンが3.8ということは,Miniconda3のものが扱われている可能性があります.
現状,それに対するpipのカーネルはどのpythonか不明です.次のコマンドで,CMDで優先的に扱われるpythonの確認をお願いします.

$ python -c "import sys, pprint; pprint.pprint(sys.path)"

ここで得られるPATHを使って,無理やりminicondaのpipを呼び出すこともできるでしょう.

また,pip installの際には,どのpythonを使うか明記するために,python -m pip install packagenameのようにする方が良いです.今後いろんな記事でパッケージインストールの話が出てくると思いますが,pip installという文字は全て,python -m pip installに読み替えてください.

2Like

Comments

  1. @upaupanuo39

    Questioner

    了解しました!これからpip installではなくpython -m pip installでインストールしようと思います!

Python のグローバル環境は汚れやすいので、開発の際は pipenv などの仮想環境の使用をおすすめします。
作りたいツールごとに必要なモジュールを管理してくことができるので、グローバル環境を無理に気にする必要がなくなりますし、環境のクリーンアップも容易です。

2Like

Comments

  1. @upaupanuo39

    Questioner

    ご教授ありがとうございます!pipenvを使おうと思います!

Your answer might help someone💌