Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Environnement virtuel et projets similaires

+5 votes

Pour nos projets, on utilise virtualenvwrapper. Le "soucis" c'est qu'on a séparé un de nos projets en plusieurs parties pour mieux gérer les spécificités clients:

  • Base

    • Domaine d'activité x

      • Client a
      • Client b
    • Domaine d'activité y

      • Client c
        ...

Du coup, pour le client b, on a les dépendances du domaine d'activité x, qui dépend de la base. On fait donc un venv par client et on se retrouve à recompiler numpy pour les pandas à chaque fois qu'il y a une maj ou qu'on switch sur un autre client.

La solution la plus simple serait de trouver un package précompilé de numpy, mais ça ne nous convient pas. La plus logique (mais si elle est possible), ce serait de trouver le moyen de pouvoir faire hériter un environnement virtuel à un autre. Vous savez si c'est possible ? Que l'env client b dépende de son domaine d'activité, et que ce dernier dépende de la base.

demandé 20-Avr-2015 par Mowee
edité 20-Avr-2015 par max

3 Réponses

+3 votes

Un environnement virtuel peut etre configuré pour "voir" un paquet installé au niveau "global", (niveau systeme).

5@k:~  
 > virtualenv -h
Usage: virtualenv [OPTIONS] DEST_DIR

  --system-site-packages
                        Give the virtual environment access to the global
                        site-packages.

C'est a peu pres le seul truc qui se rapproche de ce que tu essayes de faire: "heritage de virtualenv" :\

répondu 20-Avr-2015 par Nsukami_ (1,998 points)
edité 20-Avr-2015 par Nsukami_
+1 vote

Tu peux utiliser pip wheel pour créer des paquets compilés que tu peux rapidement réinstaller dans chaque environnement.

De la doc (pip wheel --help), je comprends que tu aies à avoir wheel installé, que tu utilises pip wheel de la même façon que tu aurais utilisé pip install pour installer numpy, il créera le paquet dans wheelhouse. Ce dernier peut être installé avec pip install et ce sans devoir recompiler.

répondu 3-Mai-2015 par anonyme
+2 votes

Met un fichier base.pth dans dans le dossier site-packages de chaque venv fils, et dans ce fichier tu met le chemin vers le dossier site-packages vers le dossier de ton venv de base.

CF : http://sametmax.com/se-faciliter-les-imports-avec-les-fichiers-pth/

répondu 3-Mai-2015 par Sam (4,984 points)
...