状況
新しくScrapyのプロジェクトを作るため、以下を実行。
$ mkdir new-scrapy-prj
$ cd new-scrapy-prj
$ python3 -m venv myenv
$ source myenv/bin/activate
$ cd new-scrapy-prj
$ python3 -m venv myenv
$ source myenv/bin/activate
ここまでは成功。続いてScrapyをpipでインストールする際にエラー発生。
エラーメッセージ
1 2 3 4 5 6 |
pip install Scrapy Collecting Scrapy Cache entry deserialization failed, entry ignored Could not fetch URL https://pypi.python.org/simple/scrapy/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:720) - skipping Could not find a version that satisfies the requirement Scrapy (from versions: ) No matching distribution found for Scrapy |
どうやらSSL証明書がアカんって叱られてるようだけど、そんなのいじった覚えは全くない。
結論だけ言うと、証明書周りは何もせず、pipを最新にしてやるといけた。
環境の確認
$ python -V
Python 3.5.3
$ pip -V
pip 9.0.1
Python 3.5.3
$ pip -V
pip 9.0.1
対処
venvに入ったまま下記を実行し、pipを最新のものにしてやると直った。
$ curl https://bootstrap.pypa.io/get-pip.py | python
下記のようにずらずらーっといろんなメッセージが出る。
最後の3行くらいを読むと、pip-9.0.1をアンインストールして10.0.1にアップデートされているのがわかる。
Collecting pip
Using cached https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl
Collecting wheel
Using cached https://files.pythonhosted.org/packages/81/30/e935244ca6165187ae8be876b6316ae201b71485538ffac1d718843025a9/wheel-0.31.1-py2.py3-none-any.whl
Installing collected packages: pip, wheel
Found existing installation: pip 9.0.1
Uninstalling pip-9.0.1:
Successfully uninstalled pip-9.0.1
Successfully installed pip-10.0.1 wheel-0.31.1
Using cached https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl
Collecting wheel
Using cached https://files.pythonhosted.org/packages/81/30/e935244ca6165187ae8be876b6316ae201b71485538ffac1d718843025a9/wheel-0.31.1-py2.py3-none-any.whl
Installing collected packages: pip, wheel
Found existing installation: pip 9.0.1
Uninstalling pip-9.0.1:
Successfully uninstalled pip-9.0.1
Successfully installed pip-10.0.1 wheel-0.31.1
改めてpipのバージョンを確認。10.0.1になってる
$ pip -V
pip 10.0.1
pip 10.0.1
結果
改めて、pipでScrapyを入れ直す。
$ pip install Scrapy
インストールできたか確認!
$ scrapy version
Scrapy 1.5.0 # versionが表示されればok!
Scrapy 1.5.0 # versionが表示されればok!
教訓
なんか困ったら諸々アップデートや!
参考にしたもの
python – pip issue installing almost any library – Stack Overflow
Not able to install Python packages [SSL: TLSV1_ALERT_PROTOCOL_VERSION] – Stack Overflow