Vous utilisez virtualenv, et soudainement après activation, impossible de lancer la moindre instruction Python sans que ce dernier ne s’exclame ImportError: cannot import name urandom
.
Je ne saurais pas vous dire pourquoi c’est arrivé, mais voici un moyen de le réparer:
virtualenv /chemin/absolu/vers/le/dossier/de/l/environnement/virtuel
.
Par exemple, si vous utilisez virtualenv wrapper:
virtualenv /home/sam/.virtualenvs
Ca va resetter l’environnement virtuel, et tout rentrera dans l’ordre. Attention cependant, si vous avez un interpretteur different, je ne sais pas si il faut le préciser avec --python
ou pas.
Il faut remettre les mêmes options que lors de la création du virtualenv (–python et –distribute).
Par contre je suppose que tu veux dire
--setuptools
car distribute est le comportement par défaut dans les derniers virtualenvs.Ça vient de la dernière mise à jour de Python qui ajoute la “hash randomization”. Ça touche à os.urandom, d’où l’erreur d’import. Recréer le virtualenv est effectivement la solution, de toute façon ils sont jetables :).
Explication intéressante et toujours la bienvenue.