見出し画像

condaで提供されていないパッケージをAnaconda Cloudから検索してインストール

タイトルの通りですが、condaで提供されていないパッケージがあります。
Anaconda Cloudhttps://anaconda.org/ )という、パッケージを管理するためのリポジトリが提供しています。

Anaconda Cloud とやり取りするためのコマンドライン(インタフェイス)として anaconda-clienthttps://github.com/Anaconda-Platform/anaconda-client )が提供されています。

anaconda-client をインストールすることで anaconda というコマンドを使って Anaconda Cloud を扱えます。 (Anaconda ディストリビューションをインストールした場合は anaconda-client もインストールされています。)

1.Anaconda Cloud から検索してインストール

今回、「LittleHTTPServer 0.5.0」というパッケージで実際にやってみます。

もしcondaにパッケージが含まれている可能性もあるので念のためcondaで検索してみます。condaの使い方は(condaの簡単な使い方)を参照。

コマンドラインに「conda search littlehttpserver」でたたいてみます。

C:\Users\>conda search littlehttpserver
Loading channels: done

PackagesNotFoundError: The following packages are not available from current channels:
# パッケージは見つかりません: 以下のパッケージは現在のチャンネルから入手できません。

  - littlehttpserver

Current channels:

  - https://repo.anaconda.com/pkgs/main/win-64
  - https://repo.anaconda.com/pkgs/main/noarch
  - https://repo.anaconda.com/pkgs/free/win-64
  - https://repo.anaconda.com/pkgs/free/noarch
  - https://repo.anaconda.com/pkgs/r/win-64
  - https://repo.anaconda.com/pkgs/r/noarch
  - https://repo.anaconda.com/pkgs/pro/win-64
  - https://repo.anaconda.com/pkgs/pro/noarch
  - https://repo.anaconda.com/pkgs/msys2/win-64
  - https://repo.anaconda.com/pkgs/msys2/noarch

To search for alternate channels that may provide the conda package you're
looking for, navigate to
# condaパッケージを提供している可能性がある代替チャンネルを下記から検索しましょう

    https://anaconda.org

and use the search bar at the top of the page.

上記の通りですが「PackagesNotFoundError」が表示されています。

そこで、anaconda-client を使って、Anaconda Cloud 状のリポジトリを検索してみます。なお、Anaconda ディストリビューションからインストールした場合は、すでに anaconda-client はインストールされているのでここではスキップして、パッケージ検索に進みます。

anaconda-client を使って、「-t」(--package-type)オプションで、conda または pypi のどちらかのパッケージ種別を指定できますが、今回は conda を指定します。

anaconda search -t conda littlehttpserver

でパッケージを検索します。

C:\Users\>anaconda search -t conda littlehttpserver
Using Anaconda API: https://api.anaconda.org
Packages:
     Name                    |  Version | Package Types   | Platforms       | Builds
     ----------------------- |   ------ | --------------- | --------------- | ----------
     auto/littlehttpserver   |    0.1.4 | conda           | linux-64        | py27_0
                                          : http://bitbucket.org/t2y/littlehttpserver
     t2y/LittleHTTPServer    |    0.5.0 | pypi, conda     | linux-64        | py36_0, py33_0, py34_0
                                          : Little bit extended SimpleHTTPServer
Found 2 packages

Run 'anaconda show <USER/PACKAGE>' to get installation details

Found 2 packages

誰かが公開してくれている「littlehttpserver 」のパッケージが2件見つかりました。現時点での最新バージョンである「t2y/LittleHTTPServer 0.5.0」を選択します。

なおこちらの検索は、Webページでも同様に検索できます。

が、今回Windowsの今回の環境ではインストールできないようなので違うものを次のステップで入れてみます。インストールは失敗するがその流れは下記の通り。

C:\Users\anaconda login
Using Anaconda API: https://api.anaconda.org
Username: ********
Password: ********
User_name's login successful

ログインができたら、インストールをします。

C:\Users\>pip install -i https://pypi.anaconda.org/t2y/simple littlehttpserver
Looking in indexes: https://pypi.anaconda.org/t2y/simple
Collecting littlehttpserver

  Downloading https://pypi.anaconda.org/t2y/simple/littlehttpserver/0.1.4/LittleHTTPServer-0.1.4.tar.gz
Collecting distribute (from littlehttpserver)

  Could not find a version that satisfies the requirement distribute (from littlehttpserver) (from versions: )
No matching distribution found for distribute (from littlehttpserver)
要件を満たすバージョンを見つけることができませんでした。

とエラーがでてインストールできませんでした。

2.「unicodecsv」を検索してインストールする

Anaconda Cloud で「unicodecsv」を検索するとパッケージが見つかります。ファイル名から察するに、unicodeのCSVファイルを扱えるパッケージなのかなと想像がつきます。

「unicodecsv 0.14.1」( https://anaconda.org/conda-forge/unicodecsv )というものが検索でヒットしたので確認してみましょう。

インストール条件は、conda install に書いてある通り

linux-64 v0.14.1
win-32 v0.14.1
noarch v0.14.1
osx-64 v0.14.1
win-64 v0.14.1

上記を見る限り、どの環境でも使えそうですね。
インストールは下記の通りコマンドに入れてみます。
To install this package with conda run one of the following:

conda install -c conda-forge unicodecsv 
conda install -c conda-forge/label/gcc7 unicodecsv

インストール手順は、上記該当パッケージのページに行くと記載してありますが、anaconda API にログインして(事前にブラウザで登録しておく)インストールコマンドをたたけばOKです。

conda install -c conda-forge unicodecsv
C:\Users\>conda install -c conda-forge unicodecsv
Solving environment: done

## Package Plan ##

  environment location: C:\Anaconda3

  added / updated specs:
    - unicodecsv

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    # ~中略~
    ------------------------------------------------------------
                                           Total:       412.0 MB

The following NEW packages will be INSTALLED:

    unicodecsv:      0.14.1-py_1             conda-forge

The following packages will be UPDATED:

# ~中略~

The following packages will be DOWNGRADED:

# ~中略~

Proceed ([y]/n)? y

Downloading and Extracting Packages
sqlite-3.22.0        | 907 KB    | ###### | 100%
openssl-1.0.2p       | 5.4 MB    | ###### | 100%
zstd-1.3.3           | 1.2 MB    | ########### | 100%
icu-58.2             | 21.8 MB   | ########### | 100%
mkl-2018.0.3         | 178.1 MB  | ########### | 100%
numpy-1.15.4         | 36 KB     | ########### | 100%
sip-4.18.1           | 269 KB    | ########### | 100%
qt-5.6.2             | 55.6 MB   | ########### | 100%
krb5-1.14.6          | 767 KB    | ########### | 100%
psutil-5.4.8         | 326 KB    | ########### | 100%
libsodium-1.0.16     | 582 KB    | ########### | 100%
certifi-2018.11.29   | 144 KB    | ########### | 100%
mistune-0.8.4        | 53 KB     | ########### | 100%
cython-0.29.2        | 2.0 MB    | ########### | 100%
mkl_random-1.0.1     | 267 KB    | ########### | 100%
lz4-c-1.8.1.2        | 211 KB    | ########### | 100%
zlib-1.2.11          | 119 KB    | ########### | 100%
libpng-1.6.34        | 547 KB    | ########### | 100%
libarchive-3.3.3     | 4.0 MB    | ########### | 100%
libcurl-7.61.1       | 249 KB    | ########### | 100%
numexpr-2.6.9        | 131 KB    | ########### | 100%
scikit-learn-0.20.0  | 5.2 MB    | ########### | 100%
pywavelets-1.0.1     | 4.3 MB    | ########### | 100%
jpeg-9b              | 314 KB    | ########### | 100%
numpy-base-1.15.4    | 3.9 MB    | ########### | 100%
python-3.7.1         | 20.9 MB   | ########### | 100%
curl-7.60.0          | 367 KB    | ########### | 100%
pyodbc-4.0.25        | 65 KB     | ########### | 100%
matplotlib-2.2.3     | 6.5 MB    | ########### | 100%
mkl_fft-1.0.6        | 120 KB    | ########### | 100%
libxslt-1.1.32       | 456 KB    | ########### | 100%
gevent-1.3.7         | 1.6 MB    | ########### | 100%
snappy-1.1.7         | 80 KB     | ########### | 100%
zeromq-4.2.5         | 9.6 MB    | ########### | 100%
numba-0.39.0         | 2.5 MB    | ########### | 100%
vc-14                | 985 B     | ########### | 100%
scikit-image-0.14.1  | 23.3 MB   | ########### | 100%
tk-8.6.8             | 3.8 MB    | ########### | 100%
pycurl-7.43.0.2      | 58 KB     | ########### | 100%
yaml-0.1.7           | 103 KB    | ########### | 100%
mkl-service-1.1.2    | 13 KB     | ########### | 100%
sqlalchemy-1.2.15    | 1.6 MB    | ########### | 100%
scipy-1.1.0          | 13.5 MB   | ########### | 100%
bzip2-1.0.6          | 144 KB    | ########### | 100%
pyqt-5.6.0           | 4.5 MB    | ########### | 100%
hdf5-1.10.2          | 18.9 MB   | ########### | 100%
llvmlite-0.24.0      | 9.3 MB    | ########### | 100%
unicodecsv-0.14.1    | 12 KB     | ########### | 100%
ca-certificates-2018 | 179 KB    | ########### | 100%
astropy-3.1.1        | 6.9 MB    | ########### | 100%
libssh2-1.8.0        | 184 KB    | ########### | 100%
lzo-2.10             | 154 KB    | ########### | 100%
pillow-5.2.0         | 648 KB    | ########### | 100%
cryptography-2.3.1   | 506 KB    | ########### | 100%
markupsafe-1.1.0     | 27 KB     | ########### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

と言うようになれば成功です。(実際にこれが必要かは置いといて)

unicodecsv                0.14.1                   py37_0

ただ、unicodecsvは最初のAnacondaパッケージに入っているので入れる必要はありません。(逆にバージョンが古くなる場合もあるので、古くて使えないというわけでなければ入れる必要はないような気がします)


Webのお仕事、元phpプログラマ、今主にWebディレクタ、たまにエンジニア、UXディレクタ、LTのネタ探ししてます。