2011-08-03 6 views
8

Je viens de mettre à jour mon Mac de Snow Leopard à Lion. J'ai ensuite dû installer virtualenv et virtualenvwrapper. J'ai utilisé pour les deux easy_install. J'ai aussi ajouté virtualenvwrapper paramètres à mon fichier .bash_profile comme suit:Erreurs Virtualenvwrapper sur Mac OS X Lion

# virtualenvwrapper settings 
export WORKON_HOME="~/virtualenvs" 
source "/usr/local/bin/virtualenvwrapper.sh" 

Mais quand l'approvisionnement j'obtenir l'erreur suivante: vous

ERROR: Could not create temporary file name. Make sure TMPDIR is set. 
virtualenvwrapper.sh: There was a problem running the initialization hooks. 
If Python could not import the module virtualenvwrapper.hook_loader, 
check that virtualenv has been installed for VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/2.7/bin/python and that PATH is set properly. 

Merci à tous pour votre aide.

Répondre

13

Depuis /Library/Frameworks/Python.framework/Versions/2.7/bin/python est le chemin vers un Python 2.7 (peut-être d'un installateur de python.org) plutôt que le Python fournis par Apple 2.7 (/usr/bin/python2.7) installé séparément, vous devez vous assurer que vous utilisez un easy_install pour cela séparé Python ou passez à l'utilisation du Python fourni par Apple. Pour faire l'un ou l'autre, vous devez vous assurer que votre variable shell PATH est correcte. Pour le premier cas, vous devriez être en mesure d'installer un easy_install en procédant comme suit:

cd /tmp 
curl -O http://python-distribute.org/distribute_setup.py 
sudo $VIRTUALENVWRAPPER_PYTHON distribute_setup.py 

Vous pouvez corriger votre PATH shell pour inclure le répertoire bin-cadre. Si vous utilisez bash, d'une façon serait d'ajouter cette ligne à ~/.bash_profile:

export PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}" 

ouvrir ensuite une nouvelle session Terminal. Vous devriez maintenant trouver que easy_install vous venez d'installer est la bonne:

$ which easy_install 
/Library/Frameworks/Python.framework/Versions/2.7/bin/easy_install 
+0

Salut Ned "L'Homme Python" Deily! Merci beaucoup pour votre réponse. Après votre réponse, j'ai pensé à cela, probablement que je devais également mettre à jour mon installation Python avant de chercher de l'aide. Donc, cela fait, sur mon iMac tout a fonctionné comme prévu, tandis que sur mon Macbook pas ... :( J'ai alors suivi vos mots de sagesse et l'a corrigé.Vraiment, vraiment merci. '/ usr/local/bin /'. Après vos instructions, ils sont dans mon '$ VIRTUALENVWRAPPER_PYTHON' (que, btw, je l'ai déjà ajouté à mon' $ PATH' dans mon fichier '.bash_profile') Alors, que exaclty 'distribute_setup.py' did? tnx –

+0

La façon la plus simple de penser est que chaque instance de Python doit avoir sa propre commade' easy_install' Le script 'distribute_setup.py' installe une version de' easy_install' pour l'instance Python –

+0

Encore une fois, j'espère que si 'virtualenv' est en place, je devrais pouvoir mettre à jour la version majeure de Python directement dans un environnement virtuel et gérer des bibliothèques spécifiques avec d'autres. En train d'apprendre Python, je suis sûr que nous nous reverrons *, merci d'avance pour votre aide inestimable. –

0

J'ai eu un problème similaire et je l'ai résolu en exportant $ TMPDIR vers un chemin Saner, plutôt que de la merde au hasard que Mac OS X préfère.

$ grep TMPDIR ~/.env 
export TMPDIR=/tmp/ 

$ source .env 

et maintenant virtualenvwrapper peut créer ses fichiers temporaires bien. Pour faire court, il suffit d'ajouter export TMP=/tmp/whatever à votre fichier de configuration d'exécution de shell (par exemple, pour ZSH, il s'agit de ~/.zsh, pour bash, il s'agit de ~/.bashrc).