Asy*_*Asy 5 python django ubuntu
我正在研究一个旧的Django项目(Django版本1.3.2,Python版本2.6.6).运行"python manage.py runserver"给我:"ImportError:无法导入名称urandom".
在线搜索通过重新运行virtualenv返回一堆关于解决问题的结果.这没有任何意义,因为我从来没有安装过virtualenv并且之前的工作正常...所以我认为这对我的python安装一定是个问题.
我决定通过运行Django安装指南删除并重新安装Django
pip install Django
做django-admin.py startproject project
了给我相同的ImportError.所以我再次使用卸载Django pip uninstall Django
.
现在运行python
启动python2.6.6 shell,打字from os import urandom
给我"ImportError:无法导入名称urandom"消息,同时做同样的事情python2.7
并没有给出这样的错误.
这里发生了什么?什么打破了我的python2.6.6?
虽然我不知道是否可以提供更多有用的信息,但以下是我对此次失败的可能原因的分析:
您的操作系统不再向 Python 2.6.6 正确提供 urandom。据我所知,当 /dev/urandom 不存在时, OSError 带有“import random”,这应该会导致 OSError 或 NotImplementedError (而不是 ImportError),但文档之前就错了。检查是否可以获取系统 urandom 的一个不错的方法是运行:
from posix import urandom
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,请尝试:
from os import O_RDONLY
aURandom = open("/dev/urandom", O_RDONLY)
Run Code Online (Sandbox Code Playgroud)
如果两者都不起作用,您可能会遇到无法通过任何方式访问系统功能的问题。这可能意味着操作系统设置在某种程度上是罪魁祸首。您可能想实际检查 urandom 在您的 Ubuntu 安装中是否确实可用,而 python 需要它 (/dev/urandom)。您的 Python 2.7 版本也可能无法访问 urandom,但会默默地失败而不是崩溃。
如果上面的代码片段有效,那么您的 os.py 文件或此类文件的编译版本就混乱了。在这种情况下,您的 Python 安装已损坏。您需要卸载它,清除任何中间 pyc 或 pyo 文件,然后重新安装它。
鉴于 python 2.6.6 解释器无法自行找到 urandom,Django 不太可能成为问题。
归档时间: |
|
查看次数: |
1821 次 |
最近记录: |