shine-Notes

しゃちくえんどれす略して SE の備忘録等々

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 を共存させる方法を調べたら、色々情報があり中々手に負えなさそうな気がしたのでこれも放置。

qiita.com qiita.com

以上