3

免责声明:我是 python 和 django 的新手,但有 Drupal 编程经验。我使用的是 Windows 7(Windows XP 上的问题相同)

在 python 2.7 和 Django-1.3.1 上,我成功创建了一个默认项目

django-admin.py startproject djsite

现在,我需要按照此处(http://www.pyinstaller.org/wiki/Recipe/DjangoApplication)的说明在位于 djsite 父目录的 bootstrap.py 文件中“引导”djsite.manage,如下所示:

import djsite.manage
djsite.manage.execute_manager(djsite.manage.settings,['manage.py', 'runserver'])

然而,一旦编译器看到:

import djsite.manage

我明白了:“错误:在包含'C:\Python27\Lib\site-packages\djsite\manage.pyc'的目录中找不到文件'settings.py'。看来你已经自定义了东西.. . 你必须运行 django-admin.py,将它传递给你的设置模块。” 而且,在这种情况下,我不知道如何遵循错误的建议。

但是,如果我改为在 bootstrap.py 中发出以下命令:

import os, sys
sys.path.append(os.path.abspath('djsite'))
import djsite.manage
djsite.manage.execute_manager(djsite.manage.settings,['manage.py', 'runserver'])

该脚本工作正常,但它破坏了 Pyinstaller(我已经在该软件的邮件列表(http://groups.google.com/group/pyinstaller/browse_thread/thread/174a72e26c26a44c)上问过这个问题。即使我添加了路径到我的 PATH 变量中的 djsite,我得到了同样的错误。

所以我的问题是:为什么用这种方法导入 manage.py 模块会失败,我该如何继续?谢谢!

4

1 回答 1

2

尝试将其添加到您的 bootstrap.py 以告知它您的设置文件所在的位置:

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'djsite.settings'

这将假定 djsite 在您的 pythonpath 中。也就是说,如果它位于此处:/path/to/my/djsite,那么它应该在您的 pythonpath 中:/path/to/my

实际上,从一开始就这样做的最好方法是使用virtualenv,这将确保您的环境是正确的。如果我记得 bootstrap,我觉得那一定是你教程的一部分。如果您使用的是 virtualenv,请确保您记得source bin/activate

如果这不起作用,您可以尝试更改 runserver 命令:

args = ['manage.py', 'runserver', '--settings=/path/to/my/djsite/settings.py']
djsite.manage.execute_manager(djsite.manage.settings, args)
于 2012-02-25T18:05:13.897 回答