Подтвердить что ты не робот

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, поэтому, пожалуйста, несите меня

спасибо

4b9b3361

Ответ 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