【问题标题】:Import error cannot import name execute_manager in windows environment导入错误无法在windows环境下导入名称execute_manager
【发布时间】:2014-01-21 06:42:43
【问题描述】:

我会让你快速上手。我正在尝试设置 Windows 开发环境。我已经成功安装了python、django和virtualenv + virtualenwrapper(windows-cmd installer)

workon env
Python 2.7.6 (default, Nov 10 2013, 19:24:24) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.VERSION
(1,6,1, 'final',0)
>>> quit()

但是当我从我的克隆存储库中运行:python manage.py runserver 时,我得到了这个错误:

Traceback (most recent call last)"
File "manage.py", line 2, in (module)
from django.core.management import execute_manager
ImportError: cannot import name execute_manager

python 和 django 都添加到我的系统变量 PATH 中:

...C:\Python27\;C:\Python27\Scripts\;C:\PYTHON27\DLLs\;C:\PYTHON27\LIB\;C:\Python27\Lib\site-packages\; 

我也用 bash 和 powershell 试过这个,但我仍然得到同样的错误。

这是与 virtualenv 相关的问题吗? Django依赖问题?哎呀。我该如何解决这个问题?帮助我 Stackoverflow-kenobi 你我唯一的希望。

【问题讨论】:

  • 你真的在使用 virtualenv 吗?它的重点是使用系统范围的python解释器及其库。检查接受的问题答案:stackoverflow.com/questions/6049933/… 它涉及 virtualenv 设置。
  • @matcheek 嗯,看起来我没有正确运行 virtualenv。运行正确的 django 版本后,我收到此错误:ImportError: No module named djcelery.
  • @matcheek 我检查了 django 是否会在我的环境之外的 python 中运行,并且确实如此。您建议的链接也适用于 linux 环境。

标签: python django virtualenv virtualenvwrapper


【解决方案1】:

execute_manager 在 Django 1.4 中作为项目布局重构的一部分被弃用,并在 1.6 中根据弃用时间表删除:https://docs.djangoproject.com/en/1.4/internals/deprecation/#id3

要修复此错误,您应该为项目安装兼容版本的 Django,或者将 manage.py 更新为不使用 execute_manager 的新样式:https://docs.djangoproject.com/en/stable/releases/1.4/#updated-default-project-layout-and-manage-py 很可能是您的 manage.py 不兼容1.6 那么项目的其余部分也不是。您应该为项目找到合适的 Django 版本。

【讨论】:

  • 感谢您的及时回复。看起来这有帮助。我成功运行了 1.3.1(我的项目需要的版本)。然而,它看起来可能是一个 virtualenv 问题。因为我收到了这个错误:ImportError: No module named djcelery.
  • 这个错误似乎很明显。你还没有安装django-celery
【解决方案2】:

@Mark Lavin 很好地解释了错误的含义以及它是如何产生的。我想我刚刚发现为什么其他人也可能会收到此错误消息,因此将其留在这里记录。

我假设您是在虚拟环境中运行它。

当启动一个新的 Django 项目时,如果你运行 django-admin startproject <myproject>,你正在调用 Django 的全局安装。如果像我一样,它来自一个陈旧的仓库,它可能是一个旧版本 - 在我的情况下:

>> django-admin --version
>> 1.3.1

如果您想在虚拟环境中运行 Django,那么您需要使用 django-admin.py startproject <myproject> 调用它。这样,您将获得一个版本与您的 local 安装相对应的 Django 项目:

>> django-admin.py --version
>> 1.6.6

【讨论】:

    【解决方案3】:

    我收到此错误是因为我的 /usr/local/bin 文件夹中有一个旧版本的 django-admin.py,我忘记为我的新项目创建一个新的 virtualenv。

    请记住,新项目的步骤应该是:

    1. 首先为您的新项目创建一个新的 virtualenv:
      mkvirtualenv <mynewproj>
    2. 如有必要,请更新您的 virtualenv 的 Python 版本:
      virtualenv --python $(which python3.6) ~/.virtualenvs/<mynewproj>
    3. 然后创建您的 Django 项目文件夹结构:
      django-admin startproject <django project name>

    我还删除了旧的 /usr/local/bin/django-admin.py,因为它是在我发现 virtualenv 的乐趣之前创建的。

    【讨论】:

      猜你喜欢
      • 2015-09-25
      • 2017-08-11
      • 2021-02-19
      • 2014-01-29
      • 2016-11-21
      • 2018-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多