19

runserver当我在运行虚拟环境(workon django1.2)时尝试任何项目时出现此错误

错误 :

ImportError: cannot import name "urandom"

在研究了这个问题后,我发现了这个

警告 Python 错误修复版本 2.6.8、2.7.3、3.1.5 和 3.2.3 包含一个更改,该更改将导致“导入随机”失败,并在具有早期版本的 Unix 主机上创建的任何 virtualenv 上出现“无法导入名称 urandom” Python 2.6/2.7/3.1/3.2 的版本,如果底层系统 Python 升级的话。这是因为 virtualenv 使用系统 Python 的标准库但包含它自己的 Python 解释器副本,因此升级到系统 Python 会导致 Python 解释器的版本与标准库的版本不匹配. 可以通过删除 $ENV/bin/python 并在与升级的 Python 相同的目标目录上重新运行 virtualenv 来修复它。

但跑步ENV/bin/python给了我:

bash: ENV/bin/python: No file or directory of this type

我在哪里可以找到我的 virtualen 目录?

我对virtualenvs了解甚少,所以请多多包涵

谢谢

4

1 回答 1

32

您必须重新创建虚拟环境。

我的猜测是发生了以下情况:

  1. 你创建了一个 virtualenv
  2. 在稍后的某个时间点,系统的 Python 安装更新了 urandom 安全错误修复。
  3. 您的 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
于 2012-11-02T12:08:41.933 回答