Django 1.5b1:执行django-admin.py导致“没有模块命名设置”错误

时间:2012-12-08 08:22:48

标签: python django macos django-1.5

我最近安装了Django-1.5b1。 我的系统配置:

  • OSX 10.8
  • Python 2.7.1
  • Virtualenv 1.7.2

当我调用 django-admin.py 命令时,出现以下错误

(devel)ninja Django-1.5b1: django-admin.py 
Usage: django-admin.py subcommand [options] [args]

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
                        Verbosity level; 0=minimal output, 1=normal output,
                        2=verbose output, 3=very verbose output
  --settings=SETTINGS   The Python path to a settings module, e.g.
                        "myproject.settings.main". If this isn't provided, the
                        DJANGO_SETTINGS_MODULE environment variable will be
                        used.
  --pythonpath=PYTHONPATH
                        A directory to add to the Python path, e.g.
                        "/home/djangoprojects/myproject".
  --traceback           Print traceback on exception
  --version             show program's version number and exit
  -h, --help            show this help message and exit
Traceback (most recent call last):
  File "/Users/sultan/.virtualenvs/devel/bin/django-admin.py", line 5, in <module>
    management.execute_from_command_line()
  File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/core/management/__init__.py", line 452, in execute_from_command_line
    utility.execute()
  File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/core/management/__init__.py", line 375, in execute
    sys.stdout.write(self.main_help_text() + '\n')
  File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/core/management/__init__.py", line 241, in main_help_text
    for name, app in six.iteritems(get_commands()):
  File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/core/management/__init__.py", line 108, in get_commands
    apps = settings.INSTALLED_APPS
  File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/conf/__init__.py", line 52, in __getattr__
    self._setup(name)
  File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/conf/__init__.py", line 47, in _setup
    self._wrapped = Settings(settings_module)
  File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/conf/__init__.py", line 132, in __init__
    raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'settings' (Is it on sys.path?): No module named settings

有没有人有同样的错误?任何人都可以提供建议或帮助吗?

谢谢,

苏丹

6 个答案:

答案 0 :(得分:26)

启动新项目时遇到了同样的问题。 我通过在命令提示符下输入此命令来解决问题:

export DJANGO_SETTINGS_MODULE=

以这种方式我取消设置指向“settings”文件的变量(使用env | grep DJANGO_SETTINGS_MODULE发现)我在开始使用 virtualenv 之前设置的

取消设置变量后,django-admin.py脚本就像魅力一样!

答案 1 :(得分:6)

我遇到了和你一样的问题,除了将我的项目文件夹添加到PYTHONPATH之外,我还没有找到一个好的解决方案:

export PYTHONPATH="/absolute/path/to/django/project/folder:$PYTHONPATH"

我的<project>位于/absolute/path/to/django/project/folder/<project>。我将export命令添加到我的env/bin/activate脚本的末尾,以便每次初始化virtualenv时都会发生这种情况。

我们两种情况之间的唯一区别是我使用多个设置文件而不是单个settings.py模块。

您也可以从包含Django项目的文件夹中调用django-admin.py,如下所示:

python ~/.virtualenvs/devel/bin/django-admin.py <command>

以便将当前工作目录识别为路径的一部分。

希望这是有道理的。解释这一点很笨拙,这使得难以找到答案。

答案 2 :(得分:0)

也许你的问题与此有关: Wrong python path in script header

如果除了在你的venv中创建一个新的django项目之外你想做任何事情,你应该调用python manage.py(当然,whereis python应该返回你的venv可执行文件)

答案 3 :(得分:0)

不要从直接路径到django库运行脚本;从任何其他路径运行它。你似乎是cd进入安装了django的目录(或你下载并扩展它的地方),然后从那里运行命令。

所以试试这个:

(devel)ninja Django-1.5b1: cd 
(devel)ninja: django-admin.py startproject foo

答案 4 :(得分:-1)

你确定你是从virtualenv django instalation开始django-admin吗?也许路径/到/ virtualenv / bin / django-admin.py

答案 5 :(得分:-1)

为了方便解决方案,您可以尝试

python。\ Scripts \ django-admin.py startproject projectname

之后运行