本体環境と異なるバージョンのpythonを利用したい場合にpyenvを利用する。
pythonのパッケージ管理pipではなく、その上流側のpythonをいじるのでpip install などではインストールできない。
仮想環境自体の準備はこちらhttps://qiita.com/katakaku/items/9ad80ffe6d52b14de0ad
JetsonNXでvenvとpyenvを利用
pyenvのインストール(参考HP)
https://karaage.hatenadiary.jp/entry/2016/04/04/073000
https://github.com/pyenv/pyenv
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
コピーしてきて、パスを通せば使えるらしい。パスを通すためには、~/.profileの上の方?(sources ~/.bashrcを実行する前ということか)に以下の3行を書くらしい。
(pyenv のgitでの記載よりPut these lines into ~/.profile before the part that sources ~/.bashrc:)
$ export PYENV_ROOT="$HOME/.pyenv"
$ export PATH="$PYENV_ROOT/bin:$PATH"
$ eval "$(pyenv init --path)"
再ログインすることで環境変数が有効になる。
pyenv install -l 利用できるpythonバージョンの一覧
PythonやAnaconda、Minicondaなどいろいろ選択可能。今回は3.8.10を選んでみる。
pyenv install 3.8.10
インストール失敗
WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?
https://codelife.cafe/entry/pyenv-install-3.7.0を参考に
sudo apt-get update
としたところ
sudo apt-get install -y libbz2-dev libreadline-dev libsqlite3-dev
sudo apt-get install libssl-dev
再度pyenv install 3.8.10
でインストール成功
pyenv versions
でインストールされていることが確認できる。
pyenv global 3.8.10
で切り替えた環境に移行
python -V
いずれでもpython3.8.10を参照していることが確認できる。
python3 -v
仮想環境を構築する
この状態でvenvを使って仮想環境を構築。
python3 -m venv py38
pyenvの環境を終了して
pyenv global system
仮想環境に入る。
source py38/bin/activate
python -Vで再度バージョン確認
pyenvは仮想環境を作るときだけ動作させれば良いようです。
初めての記事2021.5.19
その他
pyenvのリストにはanacondaも出てくるけど、導入しようとしたところ
ERROR: The binary distribution of Anaconda3 is not available for Linux-aarch64.
とエラーになってしまった。jetsonではアーキテクチャーが異なる問題なのか、どう対応すれば良いかよく分からない。
python3.8.10なんかも、pyenv-build みたいなコマンドが必要でしょうか。まだビルドには馴れていません。