めも

メモ.

windowsにてAnacondaからpipenvに乗り換える

この記事は何

macにてpythonの開発をする時、Anacondaを使用 or Docker内にて環境を作成していたのですが、Anacondaを使用していた場面は今後はpipenvに切り替えようと思い、pipenvについて調べた時のメモ。

pipenv

Pipenv は、全てのパッケージングの世界 (bundler、composer、npm、cargo、yarnなどなど。) における最高のものをPythonの世界にもたらすことを目的としたツールです。 我々の世界ではWindowsは第一級市民です。(引用元:Pipenv: 人間のためのPython開発ワークフロー — pipenv 2018.11.27.dev0 ドキュメント

speakerdeck.com

Pipfile にインストールしたいバージョンを指定し、そしてPipfile.lock に実際にインストールしたバージョンが記録される。そのため Pipfile.lock を受け取ることで、他の開発者の環境と同じ環境が再現できる。

windowsでのpythonインストール~pipenv導入まで

Pythonインストール+パスを通す

以下の手順を行う。

  • Welcome to Python.orgのDownloadより自身の環境に当てはまる物をダウンロードする(Windows installer (64-bit)など)
  • [設定]>[環境変数]を表示する(検索で「環境変数」と検索すれば出てくる)
  • ユーザー環境変数の Path をクリックし、Python3.8Python3.8\Script\を追加する、以下のようなパスを追加する。
    • C:\\Users\{Username}\AppData\Local\Programs\Python\Python38\
    • C:\\Users\{Username}\AppData\Local\Programs\Python\Python38\Scripts\

パスを通したらコマンドラインを再起動して

$ pip install --upgrade pip
$ pip install pipenv

を実行する

requirements.txt での指定をpipenvで読み込める形式にする

requirements.txt があるフォルダにて pipenv --python 3.8.7 を実行する。以下のような出力がされた後、Pipfileが作成される。

$ pipenv --python 3.8.7
Creating a virtualenv for this project...
Pipfile: ...\Pipfile
Using .../Python38/python.exe (3.8.7) to create virtualenv...
[=   ] Creating virtual environment...created virtual environment CPython3.8.7.final.0-64 in 18515ms
  creator ... 
  activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
[    ]
Successfully created virtual environment!
requirements.txt found, instead of Pipfile! Converting...
Success!

Pipfileの指定に従ってライブラリをインストール

Pipfileのある階層にて pipenv install を実行する。

最後に作成されたPipfileとPipfile.lockのgitでの管理について、「 git - Should Pipfile.lock be committed to version control? #598 」によると、なるべく両ファイルをコミットした方がいい。共にコミット対象にする。

script

yarnやnpmでpackage.jsonでのscriptが実行できたように、pipenvにもscriptを指定することができる。他にも様々な機能がある、ドキュメントを参照。

参考:Pipenvの進んだ使い方:独自のスクリプトショートカット

参考文献

プライバシーポリシー

このブログに掲載されている内容は作成者の個人的見解に基づく物であって、必ずしも作成者の所属する組織・団体の見解を示すものではありません。また、記載が不正確であったことにより生じたいかなる損害に関しても、責任を負いかねますのでご了承ください。また、本サイトは、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。また、本サイトでは、第三者配信の広告サービス(Googleアドセンス、A8.net)を利用しており、ユーザーの興味に応じた商品やサービスの広告を表示するため、クッキー(Cookie)を使用しております。 クッキーを使用することで当サイトはお客様のコンピュータを識別できるようになりますが、お客様個人を特定できるものではありません。本サイトの管理者への問い合わせ、当ブログのプライバシーポリシーの詳細についてはこちらをご覧ください。