前提
- Homebrewがインストールされていること
- Xcode Command Line Toolsがインストールされていること
pipenvの準備
pipenvをインストール
$ brew install pipenv
# インストール確認
$ pipenv --version
pipenv, version 2018.7.1
pipenvを使ってみる
# 任意のフォルダを作成
$ mkdir pipenv-example
$ cd pipenv-example
# 開発フォルダ内で仮想環境フォルダを作成する設定
$ export PIPENV_VENV_IN_PROJECT=1
# pythonのバージョン指定
$ pipenv --python 3.7
Creating a virtualenv for this project...
# 成功するとPipfileが作成される
$ cat Pipfile
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
[dev-packages
[requires]
python_version = "3.6"
$ pipenv shell
Launching subshell in virtual environment…
bash-3.2$ . /XXXX/pipenv-example/.venv/bin/activate
# バージョン確認
(pipenv-example-edEeQ5ra) bash-3.2$ python --version
Python 3.7 # pipenvで指定したバージョン
パッケージインストール
原因は不明ですが、pip 18.1を使用すると以下のエラーが発生しました。
Pipfile.lock (662286) out of date, updating to (7fbb99)...
Locking [dev-packages] dependencies...
lib/python3.7/site-packages/pipenv/utils.py", line 402, in resolve_deps
req_dir=req_dir
File "/usr/local/Cellar/pipenv/2018.7.1/libexec/lib/python3.7/site-packages/pipenv/utils.py", line 250, in actually_resolve_deps
req = Requirement.from_line(dep)
File "/usr/local/Cellar/pipenv/2018.7.1/libexec/lib/python3.7/site-packages/pipenv/vendor/requirementslib/models/requirements.py", line 704, in from_line
line, extras = _strip_extras(line)
TypeError: 'module' object is not callable
Github Issueを漁っているうちにバージョンを変更することで回避できることが分かったので、
回避方法を記載します。
pipenv内のpipバージョン変更
# 18.0のpipをインストールするだけ
pipenv install pip==18.0
# 確認
$ pipenv shell
# バージョンチェック
(pipenv-example-edEeQ5ra) bash-3.2$ pip --version
pip 18.0 from /XXXX/pipenv-example/.venv/lib/python3.7/site-packages/pip (python 3.7)
パッケージインストール
$ pipenv install Flask
追記(2019/01/14)
pipenvをアップデートしたところ、pipを18にしなくてもエラーにならなくなりました。
$ brew update
$ brew upgrade pipenv
$ pipenv --version
pipenv, version 2018.11.26
$ pipenv install Flask
以上です。