3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

4月になり新しいプロジェクトが始まる季節ですね。
新入社員さんも多くなるこのタイミングで、改めて開発環境をきれいにしたいと思い、今回の記事をポストします。

今回はPoetryというパッケージを利用し、Python環境の構築、特にライブラリ管理を丁寧にしたいというモチベーションで導入した記録です。
対話型インターフェースで環境を構築することができ、初心者でもスムーズに導入できました。

Poetryとは

Poetry は、 Python で依存関係を管理およびパッケージ化するためのツールです。これを使用すると、プロジェクトが依存するライブラリを宣言でき、ライブラリが管理 (インストール/更新) されます。Poetry は、繰り返しインストールを確実にするためのロックファイルを提供し、配布用にプロジェクトを構築できます。
引用:https://python-poetry.org/docs/

すなわち、

  • Pythonのパッケージを自動管理してくれるよ!
  • 共同開発するときや、違う環境に移行したいときでも、簡単にインストールできるようになるよ!

というものだと認識しています。

1.Poetryを使ったPython環境構築方法

  1. Ctrl + Shift + @ を押してターミナルを起動

  2. poetry init で初期設定
    対話形式で聞かれるが、基本的には空白SkipでOK。
    メイン環境に必要なライブラリ等があればWould you like to define your main dependencies interactively? (yes/no) [yes] としたあとにライブラリ名を入力しておく。
    開発環境に必要なライブラリはその後に同様に聞かれる。
    ※テスト環境はテスト用ライブラリやドキュメント生成ツールなど、開発中のコードエラー検出やドキュメント整備のために使われるものをインストールしておくとよい。基本的にはスキップしている。

    Package name [hogehoge_project]:  
    Version [0.1.0]:  
    Description []:  
    Author [None, n to skip]:  None
    License []:  
    Compatible Python versions [^3.11]:  
    Would you like to define your main dependencies interactively? (yes/no) [yes] 
    
    Package to add or search for (leave blank to skip): pandas
    Add a package (leave blank to skip): numpy
    Add a package (leave blank to skip): jupyter
    
    Add a package (leave blank to skip): 
    Would you like to define your development dependencies interactively? (yes/no) [yes] no
    
  3. Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypassを実行。
    PowerShellの実行権限を変更することで次のコマンドがエラーにならない。

  4. poetry shellを実行。
    環境構築が完了すると.venvフォルダが作られる。

  5. poetry lockを実行。
    poetry.lockファイルが生成される。
    poetry.lockとは、プロジェクトの依存関係のバージョンを固定して一貫性を保つために使われるファイル。プロジェクトが異なる環境間でも一貫した動作をするために役立つ。

  6. poetry showを実行。
    以下のようにインストール済のライブラリ一覧が表示される。

    PS > poetry show
    numpy           1.26.4      Fundamental package for array computing in Python
    pandas          2.2.2       Powerful data structures for data analysis, time series, and s...
    python-dateutil 2.9.0.post0 Extensions to the standard Python datetime module
    pytz            2024.1      World timezone definitions, modern and historical
    six             1.16.0      Python 2 and 3 compatibility utilities
    tzdata          2024.1      Provider of IANA time zone data
    
  7. 他に必要なパッケージがあるかを確認。
    足りなければpoetry add *****で追加する。※例:poetry add boto3

2. 作成した環境を使ってVSCode上で実行する方法(Jupyter Notebookを使用)

  1. VSCodeでCtrl+Shift+Pを押してコマンドパレットを開く

  2. python:selectinterpreterを入力し、「インタープリターを選択」をクリック
    EnvironmentSetup_2024-04-15-09-48-17.png

  3. ('.venv':Poetry)となっているPython環境を選択
    EnvironmentSetup_2024-04-15-09-49-39.png

  4. Ctrl+Shift+Pを押してコマンドパレット→newjupyternotebookで新しいJupyter Notebookを開く

  5. プログラムを実行。実行時に再度インタープリター(カーネル)を選択させられる可能性もあるが、上記手順で再度.venv環境を選択する。
    EnvironmentSetup_2024-04-15-09-54-20.png

さいごに

Pythonで開発するときに、毎回pip installをしていましたが、Poetryを導入してからは一気に環境を整えることができることは大きなメリットです。
Dockerコンテナを使った環境構築も経験したことがありますが、Pythonでの開発かつパッケージに特化して管理したいという小規模開発であればPoetryを使わない手はないでしょう。

ぜひみなさんもPortryを導入してみてはいかがでしょうか?

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?