2

我正在 Eclipse 中使用 PyDev 开发一个 Django 项目。有一段时间,PyDev 的 Django Shell 运行良好。现在,它没有:

>>> import sys; print('%s %s' % (sys.executable or sys.platform, sys.version))
C:\Python26\python.exe 2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit (Intel)]
>>> 
>>> from django.core import management;import mysite.settings as settings;management.setup_environ(settings)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
ImportError: No module named mysite.settings
>>> 

开发服务器运行良好。我可能做错了什么?

模型模块也明显缺失:

>>> import mysite.myapp.models
Traceback (most recent call last):
  File "<console>", line 1, in <module>
ImportError: No module named mysite.myapp.models

在 PyDev 之外的普通命令行上,shell 工作正常。

为什么会发生这种情况?

4

3 回答 3

6

似乎是一个简单的路径问题。这个输出是什么:

import sys; print sys.path

我对 PyDev 一无所知,但可能有一个设置可以将路径添加到 PYTHONPATH 设置。如果没有,您可以直接在 shell 中执行此操作:

sys.path.insert(0, '/path/to/directory/containing/mysite/')
于 2010-05-03T20:34:23.180 回答
3

前段时间,我在从 Django 1.3 移动我的项目并将 settings.py 文件放在源代码的根目录,然后将其向下移动到应用程序中时遇到了类似的问题。

例如,发生的事情是我有以下情况:

rootOfSource/ - settings.py - myapp

我把它改成:

rootOfSource/ - myapp - myapp/settings.py

我还将我的设置文件更改为以下内容:

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")
    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

但是,当我调试到 os.eviron 时,我发现 DJANGO_SETTINGS_MODULE 与预期不符,然后我将 manage.py 更改为以下内容:

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")
    os.environ.__setitem__("DJANGO_SETTINGS_MODULE", "myapp.settings")
    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

然后允许我从 PyDev 运行。

希望这可以帮助。

于 2013-01-18T12:04:48.227 回答
0

我通过转到项目属性-> PyDev Django 并设置 Django 设置模块来解决此问题。 在此处输入图像描述

于 2017-10-28T19:47:31.267 回答