Pythonプロジェクトのディレクトリ構成 という記事を見かけたのですが、どうも constraints の使い方について誤解が広まっているようです。 この記事で利用されている requirements.txt と constraints.txt の正しい実現方法と、 constraints の本来の使い方を紹介しておきます。 バージョンロックの実現方法 プロジェクトで Flask を使うとしましょう。特にバージョンに関して意見が無いので requirements.txt はこの状態で始めます。 $ pip install -r requirements.txt $ pip install flask Collecting flask Downloading Flask-0.12.2-py2.py3-none-any.whl (83kB) 100% |███████████████████
![pip の constraints の正しい用途 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/64a09f580681b9e1d03d66e20c5d19514f8a8602/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9cGlwJTIwJUUzJTgxJUFFJTIwY29uc3RyYWludHMlMjAlRTMlODElQUUlRTYlQUQlQTMlRTMlODElOTclRTMlODElODQlRTclOTQlQTglRTklODAlOTQmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPThhNjcyYzA3N2VlOTI2NzkwZTcxNzE1YzczN2E3ODNm%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwbWV0aGFuZSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ODdhZTg0ZjIxMWY4MDA4ZjUxYzNhZmE5NDJhM2I4ZTk%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D780f79d4cede5fd01fe961a5a9c3a21c)