LoginSignup
35

More than 5 years have passed since last update.

Macにpipenv環境作ってみた

Last updated at Posted at 2018-08-25

前提

  • 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

以上です。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35