LoginSignup
15
11

More than 3 years have passed since last update.

OSごとに異なるインストール処理をするPipfileの作成方法(具体例:PyTorch v0.4.1)

Last updated at Posted at 2018-08-10
(An English translation is available here.)

この記事では、PipenvでOSごとに異なるインストール処理をするパッケージがある場合において、Pipfileの書き方について説明します。

具体例として、PyTorch v0.4.1について、macOS/Windowsに両対応するPipfileを作成します。

はじめに

多くのパッケージでは、インストール方法はOSによらず共通です。例えば、numpyであれば、

pipenv install numpy

とすればOKです。

しかし、例えば、PyTorch v0.4.1については、macOSでは、

pipenv install torch

ですが、Windowsでは、

pipenv install http://download.pytorch.org/whl/cpu/torch-0.4.1-cp36-cp36m-win_amd64.whl 

と、インストール方法が異なります。(この例では、PyTorchのインストールオプションとして、Python 3.6のCUDAなしバージョンを使うものとします。)

Pipfileでは、macOSであれば前者の処理、Windowsであれば後者の処理をするように書く必要があります。どのようにすれば実現できるのでしょうか?

方法

sys_platformを指定すればOKです。Pipenvの公式ドキュメントに、特にWindowsのみpywinusbをインストールする例について記載があります。

PyTorch v0.4.1については、私が使っているPipfileでは、次のようになります。


[[source]]

url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"


[packages]

theano = "*"
tensorflow = "*"
keras = "*"
numpy = "*"
scipy = "*"
matplotlib = "*"
seaborn = "*"
jupyter = "*"
jupyterlab = "*"
ipython = "*"
pandas = "*"
scikit-learn = "*"
spyder = "*"
pillow = "*"
torch = {version = "==0.4.1", sys_platform = "== 'darwin'"}
"b4b7455" = {file = "http://download.pytorch.org/whl/cpu/torch-0.4.1-cp36-cp36m-win_amd64.whl", sys_platform = "== 'win32'"}
torchvision = "*"


[dev-packages]

pylint = "*"


[requires]

python_version = "3.6"

[packages]

torch = {version = "==0.4.1", sys_platform = "== 'darwin'"}
"b4b7455" = {file = "http://download.pytorch.org/whl/cpu/torch-0.4.1-cp36-cp36m-win_amd64.whl", sys_platform = "== 'win32'"}

で、sys_platform = "== 'darwin'"がmacOSの場合、sys_platform = "== 'win32'"がWindowsの場合を意味しています。

なお、"b4b7455"は、Windows上でpipenv install http://download.pytorch.org/whl/cpu/torch-0.4.1-cp36-cp36m-win_amd64.whlを実行すると、Pipfileに記載されます。その状態のPipfileに、sys_platform = "== 'win32'"を追記します。

GitHubにpipenv_cross-platform_exampleというリポジトリを作成し、PipfileとPipfile.lockを置きましたので、参考にしてください。

15
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
11