動機:jetsonNX+jetpack4.5にtensorflow2の環境を作成したい。
本家ドキュメント
https://pip.pypa.io/en/stable/cli/
pip基本
pip自体のアップグレード(バージョンアップ)必要に応じてpython3と明示
python -m pip install --upgrade pip
または、
pip install --upgrade pip
python -m はパイソンのモジュールという意味
pip check で依存関係が壊れていないかを確認。
##オプション
--pre 開発版もインストールする。通常は安定版のみが対象。
--extra-index-url 通常のパッケージインデックス(Pypi)以外のURLからも探してインストールする。
--no-cache-dir キャッシュを使わない。インストールの試行錯誤繰り返すときに利用した。
-U or --upgrade パッケージのアップデート ハイフン - が1個だったり2個なのは省略だったりフルスペルということか。
インストール先
pip show [パッケージ名] で確認出来る。
パッケージのインストールをpip, sudo pip, apt install python3-pakkage とするとインストール先が異なる。
https://qiita.com/gaichi/items/b3a7b566cece3a5a06cc
インストール先を指定
pip install package -t folder とのこと t : target
仮想環境の保存と再現
仮想環境に限らなくても、ライブラリの一覧リストを保存しておくことで、そのリストに従って再構築ができる。
ライブラリの一覧は pip list でも取得できるが、この目的のためにはpip freezeが適している。
pip freeze > requirements.txt でリダイレクトでテキストファイルに一覧を保存。
pip freeze --all > requirements.txt とすれば、パッケージ管理ツール(pip setuptools wheelなど)を含めて出力する。 --allオプションを付けない解説が多いが、付けた方が良いように感じている。
復元は
pip install -r requirements.txt -r オプションはリスト一覧を参照するときのオプション
pipが古いとうまく行かないことがあるので、アップグレードを先に行う。
ライブラリのインストールを特殊な場所から行っていると再構成できない。
この場合、requirements.txt に次の一行をエディタなどで追加する。
--extra-index-url https://....nvidia/jp/v45 リスト全体をこのURLからも探すので記述場所はどこでも良い。