当前位置: 首页>>技术教程>>正文


自从Ubuntu 12.04升级以来,Python ImportError无法导入urandom

, ,

问题描述

将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,可怜的Python!我认识他,随机,一个无限开玩笑的模块,最可能的混乱。他已经在他的 randint()上让我厌烦了1000次,现在在我的工作空间里真是令人讨厌!我的异常处理程序出现了。

编辑在virtualenv中运行

最佳办法

这是你的问题吗?

https://bugs.launchpad.net/ubuntu/+source/python-defaults/+bug/989856

似乎是由于在虚拟环境中运行它引起的,并且可以解决此问题。

顺便说一句,这是谷歌最好的结果。

次佳办法

升级到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 {}

第三种办法

我遇到了同样的错误,并仅通过re-running virtualenv(例如virtualenv --no-site-packages ~/venv/myvirtualenv/)进行了修复。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7746.html,未经允许,请勿转载。