pipenvが流行ってるらしいので使ってみたよ

インストール: python

Pythonのインストールまではpyenvでやります(Debianパッケージの、python-pip3とかは使いたくないので)

この記事では、anyenvpyenv等はインストール済みの前提です(参考:anyenvでrbenv,pyenvなどをインストール

1
2
3
4
5
6
$ pyenv install 3.7.0

$ python --version
Python 3.7.0

$ echo "3.7.0" > .python-version

インストール: pipenv

1
2
3
4
$ pip install pipenv

$ pipenv --version
pipenv, version 2018.7.1

初期設定

そのままpipenv installすると、virtualenv環境や、Pipfileなどの必要なファイルを作成してくれます

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$ pipenv install
Creating a virtualenv for this project...
Pipfile: /path/to/project/Pipfile
Using /home/username/.anyenv/envs/pyenv/versions/3.7.0/bin/python3.7 (3.7.0) to create virtualenv...
⠋Already using interpreter /home/username/.anyenv/envs/pyenv/versions/3.7.0/bin/python3.7
Using base prefix '/home/username/.anyenv/envs/pyenv/versions/3.7.0'
/home/username/.anyenv/envs/pyenv/versions/3.7.0/lib/python3.7/site-packages/virtualenv.py:1041: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp
New python executable in /home/username/.local/share/virtualenvs/project-5FXDgRvf/bin/python3.7
Also creating executable in /home/username/.local/share/virtualenvs/project-5FXDgRvf/bin/python
Installing setuptools, pip, wheel...done.
Setting project for project-5FXDgRvf to /path/to/project

Virtualenv location: /home/username/.local/share/virtualenvs/project-5FXDgRvf
Creating a Pipfile for this project...
Pipfile.lock not found, creating...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Updated Pipfile.lock (a65489)!
Installing dependencies from Pipfile.lock (a65489)...
🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 — 00:00:00
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
1
2
3
4
5
6
7
8
9
10
11
12
$ cat Pipfile
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]

[dev-packages]

[requires]
python_version = "3.7"

activateする

pipenv shellとするとactivateしてくれます

1
2
3
4
$ pipenv shell

// activateされた
(project-5FXDgRvf) /path/to/project$

パッケージ導入

pipコマンドと完全に互換あります!と、公式のどこかで読んだ気がしますが、どこで読んだか忘れてしまいました

ためしにargparseを入れてみます

1
2
3
4
5
// 最新が入る
(project-5FXDgRvf) /path/to/project$ pipenv install argparse

// バージョン指定
(project-5FXDgRvf) /path/to/project$ pipenv install argparse==1.4.*
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// argparseの1.4.*を入れてみる
(project-5FXDgRvf) /path/to/project$ pipenv install argparse==1.4.*
Installing argparse==1.4.*...
Requirement already satisfied: argparse==1.4.* in /home/username/.local/share/virtualenvs/project-5FXDgRvf/lib/python3.7/site-packages (1.4.0)

Adding argparse==1.4.* to Pipfile's [packages]...
Pipfile.lock (633866) out of date, updating to (286c22)...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Updated Pipfile.lock (286c22)!
Installing dependencies from Pipfile.lock (286c22)...
🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 1/1 — 00:00:00

// [packages]に追記される
(project-5FXDgRvf) /path/to/project$ cat Pipfile
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
argparse = "==1.4.*"

[dev-packages]

[requires]
python_version = "3.7"

その他のメモ

1
2
// activateしつつvimで開く
$ pipenv run vim .