Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
5
Help us understand the problem. What is going on with this article?
@123h4wk

Ubuntu18.04にPython3.8 + Pipenv環境を構築

はじめに

Ubuntu18.04に環境構築したので、作業メモとして残します。
Python3.8のインストールにはpyenvを使用します。

環境

Ubuntu 18.04.3 LTS

手順

1.Git インストール

$ sudo apt install git

2.pyenv インストール

githubからpyenvをクローンする。

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv

パスを環境変数に設定。
Ubuntuだと.bash_profileでなく.bashrcに記載する。
[参考]
https://github.com/pyenv/pyenv#basic-github-checkout

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc

シェル起動時にpyenvが起動されるように設定。

$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bashrc

シェル再読込 & インストール確認。

$ exec "$SHELL"
$ pyenv --version
pyenv 1.2.15-2-g22c02022

3.Python3.8 インストール

Pythonのビルドに必要なパッケージをインストールする。
[参考]
https://github.com/pyenv/pyenv/wiki#suggested-build-environment

$ 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 3.8.0 をインストール(時間がかかるので気長に待ちます)

$ pyenv install 3.8.0

インストール確認

$ pyenv versions
* system
  3.8.0

4.ローカルで使用するPythonを指定する

pyenvでインストールしただけではPython3.8は有効にならないので、明示的にバージョンを指定する。

$ mkdir -p ~/sample/py38
$ cd ~/sample/py38
$ pyenv local 3.8.0

ローカル以下(上の例だとpy38ディレクトリ以下)でpython3.8が有効になる。(pipコマンドも同様)

$ python --version
Python 3.8.0
$ pip --version
pip 19.2.3

5.Pipenv インストール

$ pip install pipenv
$ pipenv --version
pipenv, version 2018.11.26

6.Pipenv プロジェクト作成

環境変数にPIPENV_VENV_IN_PROJECT=trueを指定すると、プロジェクト直下にvenvディレクトリが作成される。vscodeとの連携がしやすいため、ここではtrueに設定する。

$ mkdir pipenvdemo
$ cd pipenvdemo
$ export PIPENV_VENV_IN_PROJECT=true
$ pipenv --python 3
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
5
Help us understand the problem. What is going on with this article?