昨日は Pipenv のインストールまで行った。今回は Pipenv を使って backtrader をインストールする。
how-to-make-stock-trading-system.dogwood008.com
使用する Python のバージョンを固定する
まずは、前回作成した便利スクリプトを使って、 bash をシェルとしてコンテナに入る。
$ make run docker run --rm -it dogwood008/backtrader bash root@8e82ce23f287:/#
これでコンテナに入れた。この状態で、 pipenv --python 3.8
と入力すると、「これから使う Python のバージョンは3.8系で固定する」という宣言をしたことになる。この時、 Pipenv
というファイルが生成され、そのことが書き込まれる。
root@8e82ce23f287:/# pipenv --python 3.8 root@8e82ce23f287:/# ls # ← ファイルの生成を確認するため、カレントディレクトリのファイル一覧を表示させる Pipfile bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var # ↑生成されている root@8e82ce23f287:/# cat Pipfile # ←ファイルの中身を表示する [[source]] name = "pypi" url = "https://pypi.org/simple" verify_ssl = true [dev-packages] [packages] [requires] python_version = "3.8"
Pipenv で backtrader をインストールする
では、Pipenv で backtrader をインストールする。 pipenv install backtrader
でインストールできる。記事執筆時点での backtrader の最新版のバージョンは 1.9.76.123
なので、これで固定したければ、 pipenv install backtrader==1.9.76.123
というように、バージョンを指定してインストールできる。
root@8e82ce23f287:/# pipenv install backtrader Installing backtrader… Adding backtrader to Pipfile's [packages]… ✔ Installation Succeeded Pipfile.lock (db4242) out of date, updating to (1be2ab)… Locking [dev-packages] dependencies… Locking [packages] dependencies… Building requirements... Resolving dependencies... ✔ Success! Updated Pipfile.lock (1be2ab)! Installing dependencies from Pipfile.lock (1be2ab)… 🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 — 00:00:00 To activate this project's virtualenv, run pipenv shell. Alternatively, run a command inside the virtualenv with pipenv run.
さらに詳しく Pipenv を知りたければ、下記の記事が非常に参考になる。 qiita.com
さて、これでインストールに必要なファイルが整った。確認してみよう。
root@8e82ce23f287:/# ls Pipfile Pipfile.lock bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var # ↑ある ↑ある
ここで、 Pipfile
と Pipfile.lock
の中身をマウスカーソルで選択してクリップボードにコピーし、 Docker のホスト1でそれを貼り付けてファイルを保存しよう。
root@8e82ce23f287:/# cat Pipfile [[source]] name = "pypi" url = "https://pypi.org/simple" verify_ssl = true [dev-packages] [packages] backtrader = "*" [requires] python_version = "3.8"
root@8e82ce23f287:/# cat Pipfile.lock { "_meta": { "hash": { "sha256": "62f2c898940a09cc88c8fc42c85e52c3526c851c12517325c638b20dfa1be2ab" }, "pipfile-spec": 6, "requires": { "python_version": "3.8" }, "sources": [ { "name": "pypi", "url": "https://pypi.org/simple", "verify_ssl": true } ] }, "default": { "backtrader": { "hashes": [ "sha256:0dc8912a98352b75122f8d7084bc63ee47f61c2a1d16f506d4d82aee3941297a" ], "index": "pypi", "version": "==1.9.76.123" } }, "develop": {} }
これを使って、次回は Docker のビルド時にこの操作を行ってしまうことにより、毎回インストールの作業を行わず、いきなり backtrader が入った状態で、コンテナを起動できるようにする。
-
Dockerを動かしている側のマシン。例えば、 mac 上で Docker を動かしていれば、 mac が Docker のホストである。↩