我会让你加快速度。我正在尝试设置一个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你唯一的希望。
答案 0 :(得分:54)
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最有可能是{ {1}}与1.6不兼容,那么项目的其余部分也不兼容。你应该为项目找到合适的Django版本。
答案 1 :(得分:3)
@Mark Lavin很好地解释了错误的含义以及它是如何产生的。我想我刚刚发现为什么其他人也可能会收到此错误消息,因此请将其留在此处备案。
我假设你是在虚拟环境中运行它。
启动新的Django项目时,如果运行django-admin startproject <myproject>
,则调用Django的全局安装。如果,就像在我的情况下,它来自陈旧的回购,它可能是旧版本 - 在我的情况下:
>> django-admin --version
>> 1.3.1
如果要在虚拟环境中运行Django,则需要使用django-admin.py startproject <myproject>
调用它。这样,您将获得一个Django项目,其版本与 local 安装相对应:
>> django-admin.py --version
>> 1.6.6
答案 2 :(得分:0)
我收到此错误是因为我的django-admin.py
文件夹中有/usr/local/bin
的旧版本,我忘了为我的新项目创建一个新的virtualenv。
请记住,新项目的步骤应该是:
mkvirtualenv <mynewproj>
virtualenv --python $(which python3.6) ~/.virtualenvs/<mynewproj>
django-admin startproject <django project name>
我还删除了旧的过时的/usr/local/bin/django-admin.py
,因为它是在我发现virtualenv
的欢乐之前创建的。