【问题标题】:Django set up help in venv : Attribute error: 'module' object has no attribute 'get_version'Django 在 venv 中设置帮助:属性错误:“模块”对象没有属性“get_version”
【发布时间】:2013-05-31 06:09:37
【问题描述】:

在对 settings.py 进行适当的更改后,即。我提到数据库名称为 sqlite3: python manage.py syncdb

它给出了以下错误

 Traceback (most recent call last):
   File "manage.py", line 8, in ?
     from django.core.management import execute_from_command_line
   File "/usr/lib/python2.4/site-packages/django/core/management/__init__.py", line 11, in ?
     get_version = django.get_version
 AttributeError: 'module' object has no attribute 'get_version'

请注意,我在 venv 目录中安装了 django,并且在此 virtualenv 目录中安装了 python。 可能是什么问题呢?

【问题讨论】:

  • 通常在您的 venv 目录中也应该有一些用于 python 的二进制文件。
  • 哪个版本的 django ?您正在使用 python2.4
  • get_version() 是在 django 1.0 之前添加的,因此您应该使用非常旧的版本。您还确定您使用的是virtualenv(您需要激活它)吗?在这种情况下,回溯中的路径应该是 /path/to/venv/lib/site-packages/... 而不是 /usr/lib...

标签: python django python-venv


【解决方案1】:

我认为您没有使用 virtualenv,或者您的 venv 可以访问系统包,这在某种程度上破坏了使用它们的优势之一。

创建一个 virtualenv 使用

$ virtualenv --no-site-packages --distribute -p python2.4 ~/my_venv

这将在您的主文件夹中创建一个 virtualenv,从而无法访问系统包。 -p 开关让您选择您的 python 版本:如果您安装了更新的 python 版本,您应该使用它,否则您将只能使用 Django 1.3。见here

接下来你需要激活它

$ source ~/my_venv/bin/activate
(my_venv) $

这个新提示显示你现在正在使用你的 virtualenv。然后,您可以安装 Django(替换您需要或可以使用的那个版本)以及您需要的一切

$ pip install Django==1.3

每次你想使用你的 virtualenv 时,你都需要激活它。要再次使用默认 python 安装,请使用deactivate

【讨论】:

  • 旁注:--no-site-packages--distribute 现在已弃用,因为这些设置已成为 virtualenv 的默认行为
猜你喜欢
  • 2016-08-19
  • 1970-01-01
  • 2011-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-29
  • 1970-01-01
相关资源
最近更新 更多