【Python】 requirements.txtでpipインストールする際にバージョン情報を無視する方法

Pythonにおいて,環境に応じたパッケージ依存関係の問題を解消するためにrequirements.txtを利用して必要なパッケージを一括でインストールすることは一般的です.

一方で,Pythonのバージョンに応じてPipバージョンも異なります.それによってさらにパッケージのバージョン依存性が問題になることが多々あります.

この記事では,requirements.txtに記載されたパッケージがバージョンを無視してpip installする方法を示します.

目次

requirements.txtでバージョンを無視する方法

たとえば,次のような requirements.txt があるとします.

requirements.txt


numpy==1.19.2
pandas==1.1.3
scipy==1.5.2

これに対してバージョンを無視するには,単にバージョンを記載しないように次のような方法が考えられます.

requirements.txt


numpy
pandas
scipy

ただこの方法では,膨大なパッケージが存在する場合はいちいちバージョン情報を削除するのは現実的ではありません.

そこで,次のようなコマンドを利用することでバージョンを無視することができます.

  • Linux

sed 's/==.*$//' requirements.txt | xargs pip install
  • PowerShell

Get-Content requirements.txt | ForEach-Object { $_ -replace '==.*$', '' } | ForEach-Object { pip install $_ }

特定のバージョンがパッケージが必要なことがありますが,その際は別途対応が必要です.そのような場合はPythonのバージョンも指定しておくと,より安定した環境となります.

参考

https://stackoverflow.com/questions/59854439/how-to-create-requirement-txt-without-all-package-versions

よかったらシェアしてね!
目次