shine-Notes

ゆるふわ思考ダンプ

Python3 on mac でpipをターミナルで打っても実行されない

【現象サマリ】

  1. 「pip」と打っても実行できない
  2. 実行できたと思ったらColud not fetch URL~といったエラーメッセージで実行失敗
  3. 解決のためにpipのバージョンアップを実行、失敗

【解決サマリ】

  1. 実は「pip3」もしくは「python3 -m pip」だと動く。
  2. pipが古いと起こるエラーと判明。
  3. 諦めてpipだけ再インストール。

【詳細】

ちょっとseleniumでも触ってみっか〜と思い、まずはpipを動かして…という所でまさかの躓き。そもそも前に入門書読んで何も考えず自機にpython3をdmg経由でインストールしたまんまだったので、

  • mac標準のPython2.Xと3.Xが混在している。
  • python3 xx.pyで明示的に支持すればpython3の実行はできる。

こんな状態だった。(´・ω・`) 解決はサマリのとおりだが、予想以上に手がかかったので、詳細を記述する。

現象1

ターミナルから「pip」だけでは実行できない。まずここで躓いた。 だがいろいろ調べると、

python3 –m pip

だと動くことに気付く。あと、単純に「pip3」でも動くことには最後に気付いた。 f:id:shinebalance:20180815143547p:plain:w300

現象2

…が、selenium導入で失敗。エラーメッセージは次の通り。 f:id:shinebalance:20180815144134p:plain:w300

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

f:id:shinebalance:20180815143639p:plain:w300

(´・ω・`)やっと動いた…

【所感】

そもそもHomebrew経由でインストールしてなかったのが諸悪の根源では?と思う。 (ふだんMSのGUIどっぷりという事もあり、どうもこの手のCUI経由で使うパッケージ管理サービスを何となく避けてた) なのでHomebrewは入れたが、Homebrew経由でもっかいpython3入れたらややこしくなる気がしたので、そのまま放置。

あとは、こういう事の解決の為にdockerが有るのでは…とも薄々思っていたのだが、 取り敢えずスクレイピングだし、まず自端末で動くようにしよー、と考えこの有様であった。 とりあえず無事seleniumは入ったので、続きの検証はまた。

【参考】 stackoverflow.com uxmilk.jp

あとは気になってそもそもpython2と3を共存させる方法を調べたら、色々情報があり中々手に負えなさそうな気がしたのでこれも放置。

(2020年追記)

このへん含めPython on mac OSの環境構築方法については別ポストにもまとめているので、ご参考 shine-bal.hatenablog.com

以上