web-dev-qa-db-ja.com

インポートエラーはWindows環境で名前execute_managerをインポートできません

私はあなたに速度を上げます。 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依存性の問題?Yikes。どうすればこの問題を修正できますか?Stackoverflow-kenobiが私の唯一の希望です。

32
Modelesq

execute_manager Django 1.4はプロジェクトレイアウトリファクタリングの一部として廃止され、廃止予定のタイムラインごとに1.6で削除されました: https://docs.djangoproject.com/en/1.4/ internals/deprecation /#id

このエラーを修正するには、互換性のあるバージョンのDjangoをプロジェクトにインストールするか、manage.pyを使用しない新しいスタイルへexecute_managerhttps://docs.djangoproject.com/en/stable/releases/1.4/#updated-default-project-layout-and-manage-pymanage.pyは1.6と互換性がなく、プロジェクトの残りの部分も互換性がありません。プロジェクトの適切なDjango=バージョンを見つける必要があります。

55
Mark Lavin

@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
Gabriel

_Django-admin.py_フォルダーに_/usr/local/bin_の古いバージョンがあり、新しいプロジェクト用に新しい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の喜びを発見する前に作成されたためです。

0
Brendan Quinn