CTF for BBA

ゲーム時々CTFやるBBAの日常。

pyenv環境でpipが失敗

pyenv環境でpipが失敗したので何がダメだったのかをメモ。


pipが失敗

$ pip install requests
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting requests
  Cache entry deserialization failed, entry ignored
  Could not fetch URL https://pypi.python.org/simple/requests/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping
  Could not find a version that satisfies the requirement requests (from versions: )
No matching distribution found for requests


pyenv環境で新しいバージョンをインストールしたのですが、
その環境下で、requestsすらインストールできない…。

この時、眠い中進めていたせいか、下記のような状態になっていました。

$ pyenv versions
  system
  2.7.14
* 3.6.3 (set by /Users/ayaka/.pyenv/version)
  3.7.0a3


'''pyenv install --list'''で最新として出てきた"3.7.0a3"を入れてしまっていたのですね。
これは正式版ではないテストリリース版です。

で、なぜ--listで出てきてしまったのかというと、pyenvが最新ではなかったから。


解決策

pyenv自体をアップデートするpyenv-updateをインストール。

$ git clone git://github.com/yyuu/pyenv-update.git ~/.pyenv/plugins/pyenv-update
$ pyenv update


  3.6.10
  3.7.0
  3.7-dev
  3.7.1
  3.7.2
  3.7.3
  3.7.4
  3.7.5
  3.7.5rc1
  3.7.6
  3.8.0
  3.8-dev
  3.8.1
  3.8.2


これで、--listから3.7.0a3は消え、正式版である3.7.0とそれ以降のバージョンが表示されるようになりました。
初歩的なミスですが、こういうこともあるということで…

pyenvとpyenv-updateはセットでインストールした方が良いのですね。


ところで

pyenv-virtualenvの存在と使い方を定期的に忘れるので困る…