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のバージョンも指定しておくと,より安定した環境となります.