【現象サマリ】
- 「pip」と打っても実行できない
- 実行できたと思ったらColud not fetch URL~といったエラーメッセージで実行失敗
- 解決のためにpipのバージョンアップを実行、失敗
【解決サマリ】
- 実は「pip3」もしくは「python3 -m pip」だと動く。
- pipが古いと起こるエラーと判明。
- 諦めてpipだけ再インストール。
【詳細】
ちょっとseleniumでも触ってみっか〜と思い、まずはpipを動かして…という所でまさかの躓き。そもそも前に入門書読んで何も考えず自機にpython3をdmg経由でインストールしたまんまだったので、
- mac標準のPython2.Xと3.Xが混在している。
- python3 xx.pyで明示的に支持すればpython3の実行はできる。
こんな状態だった。(´・ω・`) 解決はサマリのとおりだが、予想以上に手がかかったので、詳細を記述する。
現象1
ターミナルから「pip」だけでは実行できない。まずここで躓いた。 だがいろいろ調べると、
python3 –m pip
だと動くことに気付く。あと、単純に「pip3」でも動くことには最後に気付いた。
現象2
…が、selenium導入で失敗。エラーメッセージは次の通り。
Collecting selenium Could not fetch URL https://pypi.python.org/simple/selenium/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:645) - skipping Could not find a version that satisfies the requirement selenium (from versions: ) No matching distribution found for selenium
どうも調べると、pipのバージョンが古いことが原因らしい。
現象3
そこでpipのアップグレードを試みるのだが、
sudo pip3 install --upgrade pip
これもエラー。 つーかそもそもpipがエラー起こしてるんだからpip経由でアップグレードできる訳ねぇじゃん!とすぐ気付く。 色々調べて、こりゃpipを再導入したほうが早いなと結論づける。 pipをアンインストール。
sudo python3 –m pip uninstall pip
Get-pip.pyをDLする(ディレクトリに無かった)
Sudo python3 get-pip.py
(´・ω・`)やっと動いた…
【所感】
そもそもHomebrew経由でインストールしてなかったのが諸悪の根源では?と思う。 (ふだんMSのGUIどっぷりという事もあり、どうもこの手のCUI経由で使うパッケージ管理サービスを何となく避けてた) なのでHomebrewは入れたが、Homebrew経由でもっかいpython3入れたらややこしくなる気がしたので、そのまま放置。
あとは、こういう事の解決の為にdockerが有るのでは…とも薄々思っていたのだが、 取り敢えずスクレイピングだし、まず自端末で動くようにしよー、と考えこの有様であった。 とりあえず無事seleniumは入ったので、続きの検証はまた。
【参考】 stackoverflow.com uxmilk.jp
あとは気になってそもそもpython2と3を共存させる方法を調べたら、色々情報があり中々手に負えなさそうな気がしたのでこれも放置。
(2020年追記)
このへん含めPython on mac OSの環境構築方法については別ポストにもまとめているので、ご参考 shine-bal.hatenablog.com
以上