Ce qui suit a lieu dans un environnement virtuel Python 3.Pourquoi `pip3 install numpy` est-il beaucoup plus rapide que de le placer dans` install_requires`?
Je viens d'écrire un petit paquet qui nécessite numpy
. Donc, dans setup.py
, j'ai écrit install_requires=['numpy']
. J'ai exécuté python3 setup.py install
et cela a pris deux minutes environ: j'ai récupéré en plein écran les journaux, les avertissements et les configurations qui accompagnent normalement une installation numérique.
Ensuite, j'ai créé un nouvel environnement virtuel, et cette fois-ci, j'ai simplement écrit pip3 install numpy
- ce qui n'a pris que quelques secondes - puis j'ai exécuté python3 setup.py install
, et j'avais presque terminé.
Quelle est la différence entre les deux, et pourquoi pip3 install numpy
était-il tellement plus rapide? Dois-je donc inclure un requirements.txt
juste pour que les gens puissent pip-installer les exigences plutôt que d'utiliser setuptools?
Notez que lorsque je l'ai écrit pip3 install numpy
, je suis les suivantes:
Collecting numpy
Using cached numpy-1.12.0-cp36-cp36m-manylinux1_x86_64.whl
Installing collected packages: numpy
Successfully installed numpy-1.12.0
Est-il possible que cela était tellement plus rapide parce que la roue numpy était déjà mis en mémoire cache?
En utilisant ** mis en cache ** numpy? – McGrady
@McGrady Oui, je suppose que cela a la roue en cache, pas l'installation elle-même. Quand j'installe numpy en utilisant setuptools, quelques secondes seulement sont consacrées au téléchargement - le reste du temps est consacré à l'installation. – Newb
Si vous essayez d'installer votre paquet dans un nouveau venv, est-il maintenant plus rapide que c'était la première fois? – Eric