python初学者:导入mysite.manage失败了吗?

时间:2012-02-25 17:54:26

标签: python django pyinstaller

免责声明:我是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.manage,该文件名为bootstrap.py,位于djsite的父目录中,如下所示: / p>

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模块失败,我该如何处理?谢谢!

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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

args = ['manage.py', 'runserver', '--settings=/path/to/my/djsite/settings.py']
djsite.manage.execute_manager(djsite.manage.settings, args)
相关问题