LoginSignup
10
8

More than 5 years have passed since last update.

Ubuntuで、VSCodeがpipenv環境を読み込んでくれない

Last updated at Posted at 2018-07-01

環境

  • Ubuntu16.04.3
  • VSCode: 1.24.1
  • pipenv: version 2018.6.25

症状

  1. Pipfileが置いてあるディレクトリをVSCodeでOpenする。
  2. VSCodeで以下のメッセージが出る。

Workspace contains pipfile but attempt to run 'pipenv --venv' failed with 'spawn pipenv ENOENT'. Make sure pipenv is on the PATH.

  • 実際にコードを実行してもPipfileで定義された環境が使われていない模様。
    (installしたパッケージがimportできない)

  • エラーメッセージにはpipenv --venv failedと表示されるが、ターミナル上からは正常に実行できる。

$ pipenv --venv
/home/sabaku/Documents/try-keras/.venv

原因

結論: はっきりわからないが、pipenvのインストールディレクトリが関係している模様。

まず、VSCodeのWebサイトによるとpipenvで構築した仮想環境も自動的に読み込まれるようだ。(補足: 検証していないが、この挙動をさせるにはexport PIPENV_VENV_IN_PROJECT=trueをしておく必要があるかもしれない。今回の環境ではもともとtrueになっている。)

The extension automatically looks for interpreters in the following locations:
...
A pipenv environment for the workplace folder.
...

VSCodeのgithubに今回の症状に似たISSUEが上がっている。

もしかすると、この件が原因なのかもしれない。
https://github.com/Microsoft/vscode-python/issues/1338#issuecomment-390243643

対処

pipenvのインストール先を確認してみるとuserディレクトリ以下にインストールされている事が分かる。

$ pip show pipenv
...
Location: /home/sabaku/.local/lib/python3.5/site-packages
...

これをまずアンインストールする。

$ pip uninstall pipenv
Uninstalling pipenv-2018.6.25:
  Would remove:
    /home/sabaku/.local/bin/pewtwo
    /home/sabaku/.local/bin/pipenv
    /home/sabaku/.local/bin/pipenv-resolver
    /home/sabaku/.local/lib/python3.5/site-packages/pipenv-2018.6.25.dist-info/*
    /home/sabaku/.local/lib/python3.5/site-packages/pipenv/*
    /home/sabaku/.local/lib/python3.5/site-packages/tasks/vendoring/*
    /home/sabaku/.local/lib/python3.5/site-packages/tests/integration/*
    /home/sabaku/.local/lib/python3.5/site-packages/tests/unit/*
Proceed (y/n)? y
  Successfully uninstalled pipenv-2018.6.25

pipenvをrootに再インストール。

$ sudo pip install pipenv

とりあえずインストール先が変わった。

$ which pipenv
/usr/local/bin/pipenv

この状態でVSCodeを立ち上げたら症状が改善した。

さらに、VSCodeの下にあるPython環境の指定で、pipenvのvirtualenvを指定したところ、コードの実行時にもpipenvの環境を使ってくれるようになった。

正しい対処法なのか分からないが、とりあえず共有する。

10
8
0

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
10
8