将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上承受了我()a 一千次,现在在我的工作空间里它是多么令人厌恶! 我的异常处理程序在它上升。
编辑在virtualenv中运行
答案 0 :(得分:45)
这是你的问题吗?
https://bugs.launchpad.net/ubuntu/+source/python-defaults/+bug/989856
似乎是在虚拟环境中运行它引起的,并且有一个解决方法。
BTW这是google的最佳结果。
答案 1 :(得分:36)
升级到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 {}
答案 2 :(得分:7)
我收到同样的错误并通过重新运行virtualenv(例如virtualenv --no-site-packages ~/venv/myvirtualenv/
)来修复它。
答案 3 :(得分:1)
另一个解决方案是在使用apt-get安装pip时删除pip
使用wget
来获取它
wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py
然后运行
如果您没有使用root登录,请 python get-pip.py
或sudo python get-pip.py
。
这对我有用。
答案 4 :(得分:0)
好吧,也许它只是没有配置?查看this网站,然后查看配置部分。