Python

PyCharm+Selenium+Chromedriver環境構築トラブルシュート

Pythonの環境構築で躓きすぎた。。今月は超絶いそがしく(今月「も」とはあえて言わない..)なかなか手が進まず、別の方法を考えるか〜...Python諦めてGoでやるかぁ〜...と思ったんだけど

お友達に「それ、Goでやっても躓きポイントいっしょじゃない?」とか言われて、3〜4日PyCharmと格闘...。

先程、fintalkの早起き輪読会で、「環境構築で躓いているの」と何気に聞いてみたら、速攻で解決した。Python構築レクチャーで30分もとってしまった..みなさん、申し訳ない。「全然聞いてもらって大丈夫!」と丁寧におしえてくださり、温かい〜、感謝〜🙏🙏🙏

皆さんの記事とかオススメブログ・書籍等を共有いただいたので、あとでじっくり読む。

Python構築メモ

今回の目的

  • SeleniumとChromedriverが動くようにする
  • PyCharmでやりたい

パッケージの追加はPreferenceでやらんほうがいいよ

コードを動かした時に、インタープリターの設定でエラーがでていたので、ここで指定したのよ。お友達にSeleniumなどのパッケージもここから入れられるよ〜と教えてもらったのだけど、どうやらここからやらないほうがいいらしい。

↑PyCharmの今の設定。実はここを参照していない。PyCharmのターミナルからバージョンを確認するとこう:

Python 3.10系はまだ使わないほうがいいよ

  • 3.9系が安定しているとのこと。
  • 最初に作業したときに、Macのターミナルで Python3 --version をしたら3.8系が表示されたの。なので公式のインストーラーで、ポチポチとインストールしたら、Applicationフォルダに 3.10系をインストールしてしまたのだけど、この作業は不要だったっぽい..

Python3があちこちに入っててよくわからないよ!

Python3があちこちに入っていてよくわからん状況でした。そしてどうしたらいいのかもワカラナイ!

トラブルシュートスタートです🏃‍♂️

状況把握#1 どのPythonが動いている?

以下のコードを実行するとどうなるの?

import sys
print(sys.version)

記録が残ってないのだけど、たしか3.10系が表示されたと思う。

今起動しているターミナル環境のPython3のパスを表示してみる。

🌼 % which python3
/Users/wagtail/workspace/github.com/Mikkegt/hoge/venv/bin/python3
🌼 % python3 -V
Python 3.10.4

3.10系が動いてます。

状況把握#2 どこにPythonが入っている?

🌼 % where python3
/Users/wagtail/workspace/github.com/Mikkegt/hoge/venv/bin/python3
/opt/homebrew/bin/python3
/usr/local/bin/python3
/Library/Frameworks/Python.framework/Versions/3.10/bin/python3
/usr/bin/python3

なんか、いっぱい出てきたし。自分がApplicationフォルダーにインストールしたのはどこいった?

optのPythonはどうなってる?

🌼 % /opt/homebrew/bin/python3 -V
Python 3.9.10

もともと3.9系も入ってたみたい。いつ入れた?記憶ないけど多分自分で入れたのだろう。

仮想環境を削除する

venv(ぶいえんぶ)をごっそり削除する。

PyCharmで新しいターミナルを開いて、再度状況確認します。

🌼 % which python
/usr/bin/python
🌼 % which python3
/opt/homebrew/bin/python3

仮想環境をつくるのよ

おまじない python3 -m venv venv を実行。

🌼 % python3 -m venv venv
🌼 % activate venv/bin/python
zsh: command not found: activate

activateコマンドがない。

もう一度状況確認。

🌼 % where python 
/Users/wagtail/workspace/github.com/Mikkegt/note-analysis/venv/bin/python
/usr/bin/python
🌼 % where pip
/Users/wagtail/workspace/github.com/Mikkegt/hoge/venv/bin/pip
/opt/homebrew/bin/pip

pipを最新にする。pip install --upgrade pip でもいいみたいよ。

🍄 % pip install -U pip
Requirement already satisfied: pip in ./venv/lib/python3.9/site-packages (21.3.1)
Collecting pip
  Using cached pip-22.0.4-py3-none-any.whl (2.1 MB)
:
:
Successfully installed pip-22.0.4

requirements.txt をつくってpipで一括インストール

プロジェクトのルートフォルダに requirements.txt をつくりまます。プロジェクト内で使いたいパッケージを requirements.txt に記載して pip すると、一括でインストールをやってくれるらしい。今回、selenium とだけ書いたけど、バージョンを指定して書ける。指定しないときは、最新がインストールされるとのこと。ちなみに chromedriver は、ここに含めない。

pipを実行。

🌼 % pip install -r requirements.txt
Collecting selenium
  Using cached selenium-4.1.3-py3-none-any.whl (968 kB)
:
:
Successfully installed PySocks-1.7.1  .....

以下のコマンドで、pipでインストールしたパッケージの一覧が確認できる。

🌼 % pip freeze
async-generator==1.10
attrs==21.4.0
certifi==2021.10.8
cffi==1.15.0
:
:

PyCharmのターミナルでバージョンを確認します。

🌼 % python3 -V
Python 3.9.10

おおお。OKそう。次は chromedriver設置します。

(あれ? activate venv/bin/python はどこいった?)

chromedriverを設置する

Chromeのバージョンを調べて(99.0.4844.84でした)ここから近しいバージョン(今回は 99.0.4844.51)をダウンロードします。解凍してプロジェクトのルートフォルダへ配置。venvの中にはいれちゃだめらしい。

main.py に以下のコードを書いて実行します。

from selenium import webdriver

browser = webdriver.Chrome('./chromedriver')
browser.get('https://google.com')

わーーーー!ぶじに起動した〜 🎊 ありがとうございますっ🙏

おわりに

たろうさんnobolisさん、ありがとうございました😭

昨晩床についたのが1時で、5時半起床だったので眠い..

他に優先度高いタスクがいっぱいあって、ほんとはブログを書いている場合ではないのだが、あとにしたら絶対やらんので、やるなら今!という勢いで書きました。

その場でアウトプットしながらの振り返り大事〜(えらい〜)

pip(ぴっぷ)をぴっぴと読んでいたのが今日のハイライト..🐥

でも今後もぴっぴって呼んじゃうと思う。

-Python