ImportError: невозможно импортировать имя "urandom"
Я получаю эту ошибку, когда я пытаюсь выполнить runserver
любой из моих проектов, пока я запускаю свой виртуальный env (workon django1.2
)
ошибка:
ImportError: cannot import name "urandom"
после изучения проблемы я нашел this:
Предупреждающие выпуски Bugfix для Python 2.6.8, 2.7.3, 3.1.5 и 3.2.3 включают изменение, которое приведет к сбою "import random" с "can not import name urandom" на любом виртуальном диске, созданном на хосте Unix с более ранняя версия Python 2.6/2.7/3.1/3.2, если базовая система Python обновлена. Это связано с тем, что virtualenv использует стандартную библиотеку системы Pythons, но содержит собственную копию интерпретатора Python, поэтому обновление до системы Python приводит к несоответствию между версией интерпретатора Python и версией стандарта библиотека. Он может быть исправлен путем удаления $ENV/bin/python и повторного запуска virtualenv в одном и том же целевом каталоге с обновленным Python.
но запуск ENV/bin/python
дает мне:
bash: ENV/bin/python: No file or directory of this type
Где я могу найти свой каталог virtualen?
Я очень мало понимаю о virtualenvs, поэтому, пожалуйста, несите меня
спасибо
Ответы
Ответ 1
Вам нужно воссоздать свою виртуальную среду.
Я предполагаю, что произошло следующее:
- Вы создали virtualenv
- В какой-то более поздний момент установка системы Python была обновлена с помощью исправления безопасности urandom.
- Ваш virtualenv (созданный из предыдущего выпуска Python) больше не работает (из-за проблемы, о которой вы говорите в своем вопросе)
Самое простое решение - удалить вашу виртуальную среду и создать новую:
$ rm -r VIRTUALENVDIR
$ virtualenv VIRTUALENVDIR
$ . VIRTUALENVDIR/bin/activate
# then pip install any required packages, if your project has a requirements.txt file,
# this is simply:
$ pip install -r requirements.txt
# otherwise, you will have to install each package
$ pip install packagename
$ pip install packagename==version