lisz-works

プログラミングと興味を貴方に

Anaconda入れ直し→pipエラーする→対処を試した

【スポンサーリンク】

Pythonロゴ

pipがこんなエラーを吐きました。

Requirement already satisfied: pycrypto in c:\users\lis\appdata\local\continuum\anaconda3\lib\site-packages (2.6.1)
distributed 1.21.8 requires msgpack, which is not installed.

ということで、対処方法を調べて、成功したので備忘録です!

経緯

経緯はこんな感じです。

  1. Visual Sutdio 2017でAnacondaを入れていた
  2. 色々pipしていたら干渉やしがらみが酷く邪魔
  3. AnacondaをVisual Studio Installerでアンインストール
  4. Anaconda自体をインストール
  5. pycryptoをpipでインストールしよ!
  6. エラー……

エラー内容

こんなエラーが出ました。

Requirement already satisfied: pycrypto in c:\users\lis\appdata\local\continuum\anaconda3\lib\site-packages (2.6.1)
distributed 1.21.8 requires msgpack, which is not installed.

解決方法

2つのパッケージをインストールします。

  1. msgpack
  2. msgpack-python

です。

msgpackをインストール

$ pip install msgpack
Collecting msgpack
Downloading https://files.pythonhosted.org/packages/04/81/c6363198f24ec1c56e5c48ce685cb532e175125adade0cdb181c8c5fea6e/msgpack-0.5.6-cp36-cp36m-win_amd64.whl (85kB)
100% |████████████████████████████████| 92kB 2.6MB/s
Installing collected packages: msgpack
Successfully installed msgpack-0.5.6

msgpack-pythonをインストール

$ pip install msgpack-python
Requirement already satisfied: msgpack-python in c:\users\lis\appdata\local\continuum\anaconda3\lib\site-packages (0.5.6)

改めて目的のパッケージをインストール

$ pip install pycrypto
Requirement already satisfied: pycrypto in c:\users\lis\appdata\local\continuum\anaconda3\lib\site-packages (2.6.1)

いけた!

msgpackって?

調べてみました。

MessagePackはバイナリ形式のデータコンテナで,いくつかのプリミティブタイプとデータ構造(Map, List, Raw)を提供する.これがMessagePackの型であり,プログラミング言語は各それぞれの型にマッピングする.ここで重要なのは,MapやListやRawは構造を決めるだけで,中の型が何かまでは関知しない.それは上位レイヤーでハンドルするべき,という方針. これはwire formatとしては十分で,実際MessagePack RPC以外でも色々なところでMessagePackは内部フォーマットとして使われている.
引用:MessagePackが文字列とバイナリをわけないのは問題? · GitHub

pipで取ってくるデータのフォーマットを、コレを解決できるものが入ってないと解釈できなかったからエラーしてたってことかな?

参考

こちらを参考にしました。ありがとうございました。

detail.chiebukuro.yahoo.co.jp