Jul 242012
 

J’ai il y a quelques temps fait de multiples tests chez AD. Certains nécessitaient l’utilisation de paquet python non installé par défaut sur le serveur mutu AD. Du coup, j’ai voulu installer virtualenwrapper pour me simplifier la tache.

Voici la méthode que j’ai utilisé. Je suis preneur de toute amélioration que vous pourriez me remonter sur ma manière de faire (pour le jour où j’aurais vraiment besoin d’installer des choses pour faire de la prod avec du virtualenv). D’ailleurs je la partage ici autant pour le plaisir de la partager, que pour ne pas l’oublier que pour vous permettre de l’améliorer.

Le commencement, installer virtualenwrapper. En local sur son home. En faisant :

pip install --install-option="--user" virtualenvwrapper

du coup cela vous installe le tout dans $HOME/.local/….

Une fois installé, il faut faire (comme pour installation normale) la création du répertoire de vos environnements en faisant :

export WORKON_HOME=$HOME/.virtualenvs
mkdir -p $WORKON_HOME

Ensuite histoire de ne plus avoir à le faire, dans votre .bash_profile :

export PYTHONPATH=~/.local 
export WORKON_HOME=~/.virtualenvs 
export PATH=$PATH:$PYTHONPATH/bin 
source ~/.local/bin/virtualenvwrapper.sh

un petit coup de

source ~/.local/bin/virtualenvwrapper.sh

et Voila ! (à dire comme avec l’accent d’un américain qui prend un accent français).

Vous aller pouvoir faire des mkvirtualenv en veux tu en voilà !

(Un petit tips, si vous faites du django, il ne faut pas oublier dans votre django.fcgi d’ajouter une ligne

 sys.path.insert(0,'/home/$USER/.virtualenvs /VENV_NAME/lib/python2.6/site-packages'

)

 Posted by at 10:50

  One Response to “Installation de virtualenvwrapper chez Alwaysdata”

  1. Pour ma part je fais de la sorte :

    (j’ai mis à jour pip de la version 0.4 à la version 1.1 comme suit 🙂

    cd ~
    # j'ai callé l'installation de pip là où j'ai pu
    mkdir -p ~/.local/easy_install
    # mise à jour d'après la doc d'alwaysdata
    PYTHONPATH=~/.local/easy_install easy_install --install-dir ~/.local/easy_install -U pip

    Rien à redire sur la configuration du .bash_profile mais il suffit de faire un

    source .bash_profile

    pour bénéficier des commandes, etc. Pour ma part, je force pip à utiliser un virtualenv, il me semble que c’est plutôt une bonne pratique. On peut aussi configurer le fichier .pip/pip.conf plutôt que le .bash_profile

    echo 'export PYTHONPATH=$HOME/.local
    export WORKON_HOME=$HOME/.virtualenvs
    export PATH=$PATH:$PYTHONPATH/bin
    source $HOME/.local/bin/virtualenvwrapper.sh

    export PIP_REQUIRE_VIRTUALENV=true' > .bash_profile

    source .bash_profile

    Pour Django, j’utilise ça juste après le shebang :

    import getpass
    venv = '/home/{0}/.virtualenvs/{1}/bin/activate_this.py'.format(getpass.getuser(), NOM_DU_VIRTUALENV)
    execfile(venv, dict(__file__=venv))

    J’ai recopié le code d’un vieux post sur le forum d’alwaysdata. J’avoue ne pas maîtriser la différence avec ta proposition mais j’imagine qu’il est préférable de passer par ce script …

Sorry, the comment form is closed at this time.