2010-02-23 5 views
14

J'ai un script qui crée un virtualenv, installe distribute et pip et clone éventuellement un repo git.PIP: Installation uniquement les dépendances

Maintenant, j'ai le projet sur lequel je vais travailler, installé. Mais ses dépendances ne sont pas installées. Comment puis-je faire pip installer toutes les dépendances comme si j'avais émis un pip install MyApp?

EDIT: Apparemment, ma question est un doublon de this one.

Pas exactement sûr, mais pip install -e . semble faire ce que je veux sans trop de choses qui traînent. Je préférerais que mon code ne soit pas lié à site-packages.

+3

* J'ai un script qui crée un virtualenv, installe distribue et pip dans lui (...) *. Vous savez que vous pouvez faire les trois choses avec 'pip -E VENV_DIR pip' comme pip installe par défaut pip et distribue dans l'environnement nouvellement créé? –

+0

Astuce cool! Je n'utilise plus le script mentionné. – muhuk

Répondre

16

Dans mon package d'émission racine pip install -e . installe des dépendances.

+0

C'est un effet secondaire assez sérieux. '-e' s'installe en mode modifiable, ce qui signifie que le paquet est lié à partir des paquets du site au lieu d'être copié. Je m'attendrais à ce que cette approche provoque des problèmes bizarres et subtils quand vous y allez et que vous essayiez d'installer le paquet pour de vrai, surtout si vous ne le désinstallez pas d'abord. –

9

Vous devez utiliser le fichier de configuration pip.

Essentiellement, placer tous vos besoins, un dans chaque ligne dans un fichier et passer que pour pip en utilisant la commande

pip install -r requirements.txt 

Que, si vous avez un environnement standard, pip peut effectivement jeter un tel fichier de existantes installations utilisant la commande:

pip freeze 

Vous pouvez mettre le fichier ainsi généré directement dans les exigences de pépin, et appelez la commande précédente de votre script de déploiement.

Assez cool, n'est-ce pas? :)

+8

Cool, mais ça ne répond pas à ma question. Je ne cherche pas un moyen de définir les dépendances. La lecture des questions entièrement et soigneusement contribue grandement à fournir des réponses correctes. – muhuk

+6

Attendez, vous pouvez mettre toutes vos dépendances dans un fichier et demander à pip de les installer toutes pour vous. N'est-ce pas ce que vous cherchez? Sinon, je n'ai pas bien compris votre question. Même maintenant. –

+1

la différence étant où les 'dépendances' sont spécifiées - dans le fichier requirements.txt (où vous spécifieriez "myrepo == 1.0.1" ou autre) OU dans le fichier setup.py du paquet dans myrepo que vous voulez installer. Si vous avez déjà le repo en main, il vous suffit d'installer les dépendances. – andy

Questions connexes