2017-03-21 13 views
0

私はきれいにしたいinflated requirements.txのリポジトリを持っています。 pipreqsを使用するrequirements.txtは、自分のリポジトリに必要な最小限のパッケージのセットに設定しました。これをテストするために、virtualenvをセットアップしてパッケージをインストールし、すべての単体テストを実行して、それらが満足できるものであることを確認しました。pipでrequirement.txtをインストールすると、余分なパッケージがインストールされるのはなぜですか?

virtualenv temp_venv --no-site-packages 
source temp_venv/bin/activate 
pip install -r requirements.txt 

これはうまくいきますが、余分なパッケージがたくさん集まってインストールされていることがわかります。どうして?これらは必要なパッケージによって必要に応じて識別され、インストールされますか?もしそうなら、それをrequirements.txtに含めるべきですか?

+0

余分なパッケージが実際に依存していることを確認するには、virtualenvの中で 'pip freeze -l> requirements.txt'コマンドを実行してみてください(' -l'フラグに注意してください。現在のvirtualenv。同じ出力を生成する場合は依存関係です。そうでなければ、pipはあなたの現在のvirtualenv上のパッケージだけでなくすべてのパッケージを収集しました。 – NonameSL

答えて

2

はい。パッケージは依存関係の依存関係です。

ただし、これらを直接指定しないでください。自動ツールは依存関係を再帰的にダウンロードすることを知っており、メンテナンスのオーバーヘッドが大幅に増加します。

1

これは、書かれたライブラリの依存関係がrequirements.txtにあるためでした。例:scipynumpyに依存しているため、numpyとしてscipyと書かれている場合は、インストールされます。

関連する問題