Pythonの実行環境を構築するためにLinux上(CentOS7)にPython3をインストールします。
Pythonインストール
Pythonバージョン確認
まずは実行環境(Linuxサーバ)にPythonがインストールされているか確認します。
・Pythonのバージョン確認
python --version
・私の場合
Python 2.7.5
手を加えていないサーバだと私と同じような状態になっている可能性もあるかもしれません。
私のサーバにインストールされているPython2です。
現在の主流はPython3なので、学習用途で使用する場合には明確に「2」にしなければならない理由が述べられない限りはPython3を使用した方がいいでしょう。
※実際のところは一部のライブラリがPython2のみに対応しているものがあるとかないとかでPython2で過去に実装したものの移行しきれていないとかなんとか
ということでPython3をインストールしていきます。
※基本は管理者権限で実行していることを前提としています。
pyenvのインストール
※今回の方法ではインストール作業を行ったユーザのみにPython3が適用される方法になります(私の場合はroot)。すべてのログインユーザに適用する方法は現在調査中。
pyenvは開発環境などでpythonのバージョンを切り替えるためのコマンドラインツールらしいです。
gitによりpyenvのインストールを行います。
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
環境変数の設定を行います。
ひとつひとつ実行、または一気に実行しても大丈夫だと思います。
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
「~/.bash_profile」の再読み込み。
source ~/.bash_profile
・pyenvのバージョン確認
pyenv --version
私の場合
pyenv 1.2.17-2-ga8ca63f
pyenvのインストール作業はここまででOK。
Python3.8のインストール
任意の場所に作業用フォルダを作成する。
私の場合は以下を用意した。
/home/wantan/python-inst/python38
インストール可能なPythonのバージョンを確認する。
pyenv install --list | grep 3.8
3.8.0
3.8-dev
3.8.1
3.8.2
miniconda-3.8.3
miniconda3-3.8.3
とりあえず今回は最新版3.8.2のインストールをしてみる。
・インストール
pyenv install 3.8.2
私の環境ではしばらく時間がかかりました。じっとまちましょう。
・インストール中
Downloading Python-3.8.2.tar.xz...
Installing Python-3.8.2...
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?
WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?
Installed Python-3.8.2 to /root/.pyenv/versions/3.8.2
・バージョン確認
python -V
Python 2.7.5
現時点では以前のバージョンのままになっていると思うので切り替えを行います。
・バージョン切り替え(システム全体)
全体のバージョンを切り替えるにはglobalコマンドを実行します。
※ちなみに特定のディレクトリ内でのみ有効する場合にはlocalを実行します。
pyenv global 3.8.2
・再度バージョン確認
python -V
Python 3.8.2
バージョンが切り替わっていることが確認できると思います。
動作確認
コマンドライン実行
pythonコマンドを実行することでpythonをコマンドライン実行できるようになります。
python
実行画面の様子。
Python 3.8.2 (default, Mar 31 2020, 22:43:59)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
> > >
「 > > >」にコマンドを入力していきます。
・コマンド実行例
a=4 b=3 print(a*b)
・出力結果
12
・Python3がインストールされているか?
上記ではpythonが実行できることの確認なりますが、結局2が使用されているのか3が使用されているのかがわかりません。
そこで2と3で構文の違いが発生している部分で確認します。
・print文
一番簡単に確認できるのはprint文なようです。
以下の構文()なしで実行するとPython3ではSyntaxErrorとなります。
print 'test'
・出力結果
File "
", line 1
print 'test'
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print('test')?
python2が実行される実行環境では以下のように普通にコマンドが実行されます。
ファイルで実行する
Pythonでは「.py」識別子でファイルを記述します。
例えば実行環境の任意の場所に以下のようなファイルを作成します。
vim test.py
・ファイル(test.py)の中身
ファイルの中身はなんでもかまいませんが以下のように記述してみました。
list=[1,3,5] print(list[1]) print(list) print(max(list))
・Pythonファイルの実行
pythonファイルは以下のようにして実行します。
python test.py
・出力結果
3
[1, 3, 5]
5
間違いなくpythonが実行できていますね。
ちなみにファイルの末尾に先ほどと同じように以下のような記述を追記するとエラーとなるので2ではなくpython3で実行されていることも問題なさそうです。
print 'test'
・出力結果
File "test.py", line 7
print 'test'
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print('test')?
pythonのインストールは終わり!!
次回はフレームワークのインストールとかを予定。