search
LoginSignup
0
Help us understand the problem. What are the problem?

posted at

オフライン環境で pip install したい

社内・学内の計算機サーバーでpip installしたいけどインターネットに接続していない...
ということが、ちょくちょくあります。

私も、最初結構はまってしまったので備忘録として残しておきます。

環境

サーバー : Ubuntu 18.04(sshで接続), python3: 3.6.9
PC : Windows10 + WSL2(Ubuntu20.04)

pip download

公式リファレンス → https://pip.pypa.io/en/stable/cli/pip_download/
pip download でパッケージファイルをダウンロードして保存できます。

例えば、

cmd
cd ~
mkdir src
cd ~/src
pip download numpy
pip install ./*

とでもすれば、numpyがインストールできます(多分)。
ただし、単純に pip download すると今回の場合 WSL2(Ubuntu20.04) 用のパッケージがダウンロードされてしまうので、そのままsshしているサーバーに scp で持っていっても install できません。

ちゃんとサーバの環境を指定してあげないといけません。

解決策

何も理解していないのですが、紆余曲折を経て以下の shellscript でうまくいきました。
(突然 pip3 ですが)

mypip3.sh
#!/bin/bash

package=${1}
TARDIR="./${1}"
PLATFORM="manylinux1_x86_64"
PYVER=36

mkdir ${TARDIR}
pip3 download --only-binary :all:  -d ${TARDIR} --platform ${PLATFORM} --python-version ${PYVER} ${package}

仕様

  • パッケージ名を引数に与えます。
  • PLATFORM はここを参考にすればよさそうです。→ https://qiita.com/charon/items/a7b03b9309f50b205efd
  • PYVER(pythonのバージョン)は 3.6.9 なら 36 のように指定すればよさそう。
  • カレントディレクトリ以下に package名 のディレクトリができ、その中にダウンロードされたwhlファイルが保存される。
  • --only-binary :all: に関しては分かりません。

使用例

~/src/ ディレクトリに mypip3.sh があるとします。

cmd
cd ~/src
mypip3.sh numpy

すると, ~/src/numpy というディレクトリができるので、この numpy ディレクトリをサーバにコピーします。

そしたら、サーバー上で numpy ディレクトリのある場所に移動して、

cmd(サーバー上)
pip3 install numpy/*

とすれば、numpyがインストールされると思います。

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
0
Help us understand the problem. What are the problem?