Обновлен Ubuntu до Precise Pangolin (12.04), и Python Random теперь сломан... Я подозреваю, что другие вещи могут быть сломаны. Как исправить Python?
File "/usr/lib/python2.7/random.py", line 47, in <module>
from os import urandom as _urandom
ImportError: cannot import name urandom
Увы, бедный Python! Я знал его, Рэндом, модуль бесконечного шутки, наиболее вероятного хаоса. Он перенес меня на его randint() тысячи раз, и теперь, как это было в моем рабочем пространстве! Мой обработчик исключений поднимается на него.
edit Запуск в virtualenv
Это ваша проблема?
https://bugs.launchpad.net/ubuntu/+source/python-defaults/+bug/989856
Кажется, это вызвано запуском его в виртуальной среде, и есть работа вокруг.
Кстати, это был лучший результат в google.
У меня была такая же проблема при обновлении до 12.10, а при обновлении до 16.04 (в 16.04 сообщение было no module named datetime
.)
Чтобы решить проблему, она просто запускала virtualenv по той же установке, и она работала. Дайте ему флаг --no-site-packages
для сохранения ваших модулей:
$ virtualenv --no-site-packages ~/lib/virtualenv/netunong
Overwriting /home/adam/lib/virtualenv/netunong/lib/python2.7/site.py with new content
New python executable in /home/adam/lib/virtualenv/netunong/bin/python
Installing distribute.....<skippping dots, of course>.......done.
Installing pip................done.
Overwriting /home/adam/lib/virtualenv/netunong/bin/activate with new content
Overwriting /home/adam/lib/virtualenv/netunong/bin/activate_this.py with new content
Так как у меня есть все мои virtualenvs в одном и том же каталоге, я просто побежал:
$ ls | xargs -I{} virtualenv --no-site-packages {}
Я получал эту же ошибку и исправил ее, просто перезапустив virtualenv (например, virtualenv --no-site-packages ~/venv/myvirtualenv/
).
Другое решение - удалить pip, если вы установили его с помощью apt-get
используйте wget
, чтобы получить его
wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py
а затем запустите
python get-pip.py
или sudo python get-pip.py
, если вы не вошли в систему с помощью root.
Это сработало для меня.
Хорошо, может быть, он просто не настроен? Проверьте этот сайт и посмотрите раздел Конфигурирование.