LoginSignup
20
26

More than 3 years have passed since last update.

Windows10(非WSL)にpyenv+pipenv環境構築

Last updated at Posted at 2019-12-10

概要

複数のpythonバージョンやAnaconda環境を管理可能なツール pyenv
プロジェクト毎に使用するpythonライブラリを管理可能なpythonライブラリ pipenv🐍
2019年末の現在、この2つの組み合わせはベストかどうかは知りませんがそこそこ使える組み合わせと思われます😊

今回はこの便利なpyenvとpipenvをWSLではない素のWindowsに導入していきたいと思います。

pyenvとpipenvをMacやLinuxで導入する場合は
pipenv側がpyenvを自動で検出して連携を取ってくれるので導入に大きく手間取ることはありません👌
(WSLはちょっと微妙でしたが、、、😒)
非WSLのWindowsは公式pyenvが対応していない事もあり、やや手間がかかります😡

環境

  • Windows10 1909
  • pyenv-win 1.2.4
  • python 3.8.0
    • pipenv 2018.11.26

[手順1] pyenv(pyenv-win)導入

公式のpyenvはwindowsに対応していません😱
そのため、今回は3rdパーティーのツールpyenv-winを利用します。
このツール、本家pyenvと異なりanacondaの管理はできませんが
pythonだけなら同じ感覚で管理可能です。

基本的には公式に書かれている手順
沿って導入していきます。

[手順1-1]リポジトリクローン

まず、linuxのpyenvと同じようにホームディレクトリ(デフォルトはC:\User\ユーザー名\)の配下に.pyenvフォルダにコピーします。

git clone https://github.com/pyenv-win/pyenv-win.git %USERPROFILE%/.pyenv

(git未導入場合はリポジトリをダウンロードして配置しましょう)
※ 後で環境変数でこの場所を指定するので、必ずしもこの場所でなくてもいいかも(未確認)

[手順1-2]環境変数設定

Linuxではこれで終わりですが、Windowsでは追加で環境変数の設定が必要です。
まず、クローン下フォルダパスをユーザー環境変数PYENVを設定します。
image.png

続いてPAHshimsbinフォルダを追加します。
ここで注意なのが、これらの設定を~Microsoft\WindowsAppsよりも上位に設定すること。
image.png
もし下位に設定した場合はWindows側がpythonがないとみなしてMicrosoft storeのpythonを進めてくるという邪魔な気遣いをしてきます🤪
image.png
うまく設定できればコマンドプロンプトやpowershell上でpyenvコマンドが打てるようになります。
pyenvの初期設定はこちらあたりを参考に行ってください

[手順2] pipenv導入

続いてpipenvの導入ですが、今回公式なpyenvではなく3rdパーティーのツールを使ってしまっているため、
pip install pipenvでpipenvをインストールしてもpipenvコマンドが認識されません😱
pyenvのコマンド置き場であるshimsフォルダを見てみるとLinuxでは生成されていたpipenvへリンクするスクリプトが
Windows側では案の定置かれていません😨
image.png
とはいえ、Linux側のShimsフォルダのpipスクリプトファイルとpipenvファイルを比較してみると中身が完全に一致します。
ファイル名のコマンドを実環境で探しに行って実行するだけなので中身が一致しているわけです。
image.png

というわけで対策といてはpipenvと中身が同じリンクファイルを確認した上で、
Windows環境側で同ファイルをコピペしてpipenvにリネームするだけです。
pip → pipenv
pip.bat → pipenv.bat
image.png

正しく設定できていればコマンドプロンプトやpowershellからpipenvを認識できます😁

image.png

まとめ

WSLではないWindows環境にpyenv(3rdパーティー製のwindows版)とpipenvを導入しました

20
26
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
20
26