ubuntuのインストール直後はpythonコマンドはpython2.7系、3.8系のpythonを使いたければpython3と打たなければならなかった。まぁ仮想環境を構築すれば良いんだけど、サーバー設定環境等全ユーザーで3系を使いたいので、対策した時の覚書き
ググったサイトを参考に、update-alternativesコマンドを使用してデフォルトの起動バージョンを3系とした。
root@server:~# update-alternatives --config python There are 2 choices for the alternative python (providing /usr/bin/python). Selection Path Priority Status ------------------------------------------------------------ 0 /usr/bin/python3.8 2 auto mode 1 /usr/bin/python2.7 1 manual mode * 2 /usr/bin/python3.8 2 manual mode Press <enter> to keep the current choice[*], or type selection number: |
こんな感じでpython3が選択されている
ここで、勉強は各種実験用に個人ディレクトリにpython仮想環境を構築(venvを使用)
xxxx@server:~$ python -m venv venv xxxx@server:~$ cd venv/ xxxx@server:~ /venv $ ls bin include lib lib64 pyvenv.cfg share xxxx@server:~ /venv $ source bin /activate (venv) xxxx@server:~ /venv $ ls bin include lib lib64 pyvenv.cfg share (venv) xxxx@server:~ /venv $ which python /home/xxxx/venv/bin/python |
まずはpipのアップデート
(venv) xxxx@server:~ /venv $ pip install -U pip Collecting pip Downloading pip-21.1.2-py3-none-any.whl (1.5 MB) |████████████████████████████████| 1.5 MB 4.0 MB /s Installing collected packages: pip Attempting uninstall: pip Found existing installation: pip 20.0.2 Uninstalling pip-20.0.2: Successfully uninstalled pip-20.0.2 Successfully installed pip-21.1.2 |
あとは色々モジュールを入れたりすれば良いですが、折角なので最新バージョンを使用出来るようにと
こちらを参考にpyenv仮想環境を構築した。
下記のように環境変数を設定するよう.profileを書き換えて再ログイン
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile echo 'eval "$(pyenv init --path)"' >> ~/.profile |
pyenv install -l | grep 3.9 3.9.0 3.9-dev 3.9.1 3.9.2 3.9.3 3.9.4 3.9.5 |
最新は3.9.5なのでこれをインストール
pyenv install 3.9.5 |
なんか色々エラーが出たらコンパイルのためのライブラリが足らんようです。当方の場合はbz2が足りなかったので、
sudo apt install -y libbz2-dev libsqlite3-dev |
あとググって足らなさそうなものも入れておくと、無事インストール終了
pyenv global 3.9,5 ----- 3.9,5 を使用する pyenv global system ----- システムにインストールされているバージョンを使用 python -V |
バージョン確認して無事変更されていたら、さらにvenvによる仮想環境も構築しておく
python -m venv venv cd venv source bin/activate python -V deactivate |
こっちの方がライブラリが探しやすいが、pyenvで最新版のpythonが使う環境も欲しいということでの2本立てとしてみた。ライブラリ何度も入れないといけなさそうだけど、色々体で覚えていけそうw