主な流れ
Linux(Ubuntu)でPythonなど各種ソフトウェアをインストールし、環境構築する上での主な流れです。
- gitを導入
- pyenvを導入
- pythonを導入
- venvで初めてのプロジェクト
前提環境
前提とする環境はUbuntu 18.04.1です。その他、基本的にデフォルトのままなのでログイン・シェルもbashです。(というかそういうツッコミができる方は、ご自身で読み替えできる方かと思いますので、そのようにお願いします)
導入手順
gitを導入
aptコマンドを使用してgitを導入します。
$ sudo apt install git
pyenv を導入
gitコマンドを使用してpyenvを導入します。
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
導入したpyenvが使用されるように構成します。
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc $ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc
最後の行は、if文をやめて.bash_profileに記載するなどでも良いと思います。
続いてインストールできたことを確認します。
$ source ~/.bashrc $ pyenv --version pyenv 1.2.16-4-g14871354
pythonを導入
pythonの導入はaptコマンドで導入するのではなく、ここではpyenvでインストールします。そのため、いくらか前提パッケージが必要です。
前提パッケージの導入
$ sudo apt-get update; sudo apt-get install --no-install-recommends make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
Pythonのインストール
$ pyenv install 3.8.1
インストールできたことを確認します。
$ pyenv versions 3.8.1
インストールしたpythonを有効にする
$ mkdir LearningPython $ cd LearningPython/ $ pyenv local 3.8.1
これでなんとLearningPythonディレクトリにくるとPython3.8.1が有効になります。確認してみます。
$ python -V Python 3.8.1
venvで初めてのプロジェクト
以下のコマンドでvenvを使ってプロジェクトを作成します。
$ python -m venv HelloPython
出来上がったプロジェクトを確認してみます。
$ cd HelloPython/ $ ls -l 合計 16 drwxr-xr-x 2 sagamihara sagamihara 4096 1月 15 12:18 bin drwxr-xr-x 2 sagamihara sagamihara 4096 1月 15 12:18 include drwxr-xr-x 3 sagamihara sagamihara 4096 1月 15 12:18 lib lrwxrwxrwx 1 sagamihara sagamihara 3 1月 15 12:18 lib64 -> lib -rw-r--r-- 1 sagamihara sagamihara 103 1月 15 12:18 pyvenv.cfg
確かになんだか出来上がっています。
この環境を有効にするには、以下のようにします。
$ source bin/activate (HelloPython) $
これで、HelloPython用の独立した環境が出来上がっています。今後HelloExcelやHelloDjangoについても「venvで初めてのプロジェクト」の流れで作っていきますが、それぞれ独立していて干渉しません。
このあとのHello Pythonのサンプルは、このHelloPythonディレクトリの配下にsrcディレクトリを作成し、その中にソースコードを保管することを前提にします。
$ mkdir src
環境構築は以上で完了です。