5

I wish to test my django project form IDLE shell in windows. I run following commands

from django.template import Template, Context
t = Template('test template')

but I get following error.

Traceback (most recent call last):


File "<pyshell#1>", line 1, in <module>
    t = Template('test template')
  File "C:\Program Files\Python26\lib\site-packages\django\template\__init__.py", line 164, in __init__
    if settings.TEMPLATE_DEBUG and origin is None:
  File "C:\Program Files\Python26\lib\site-packages\django\conf\__init__.py", line 28, in __getattr__
    self._import_settings()
  File "C:\Program Files\Python26\lib\site-packages\django\conf\__init__.py", line 59, in _import_settings
    self._target = Settings(settings_module)
  File "C:\Program Files\Python26\lib\site-packages\django\conf\__init__.py", line 94, in __init__
    raise ImportError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)
ImportError: Could not import settings 'C:\Program Files\Python26\Lib\site-packages\django\conf' (Is it on sys.path? Does it have syntax errors?): Import by filename is not supported.

Can you help me out?

4

7 回答 7

2

Django 需要加载几个文件,比如你的 settings.py。为了帮助完成这项任务,Django 捆绑了它自己的shell(可以是 IDLE)。如果你安装了IPython,Django 会使用它。

要访问 shell,请使用根目录中的 manage.py 文件:

python manage.py shell

如果您仍然真的想在“./manage.py shell”范围之外完全使用 IDLE,请查看 manage.py 文件以了解 Django 如何加载所有必需的文件。

作为奖励,查看shell_plusdjango-command-extensions(它提供了一些不错的附加功能,例如自动加载所有模型)。

于 2009-09-20T15:57:31.597 回答
1

要从 cmd 使用 idle,我在 Windows 7 中执行了以下操作:

  1. 确保路径系统环境变量包含 idle.py 位置的路径(如 C:\Python27\Lib\idlelib)。当我在那里时,我还确保包含 python 和 Scripts 文件夹(后者在通过 pip 安装时包含 django-manage.py)

    路径: C:\Python27\;C:\Python27\Scripts;C:\Python27\Lib\idlelib;...

    上面显示的路径可能会因您安装的 python 而异,

  2. 可选:为避免输入 .py 扩展名,我确保PATHTEXT系统环境变量包含 .PY 扩展名。

    PATHTEXT:.COM;。EXE文件; ..., .PY

现在我在 cmd 上工作时所做的就是输入以下内容以空闲运行:

  • 打开一个空闲的文件(在同一目录中):

    idle models.py
    

    这将打开 models.py 文件以在空闲时进行编辑

  • 使用空闲打开外壳(与 manage.py 位于同一目录中)

    idle -r manage.py shell
    

注意:如果 .PY 不在 PATHTEXT 系统环境变量中,您可能需要将 .py 扩展名添加到 idle

有了它,现在您可以使用 IDLE。希望有帮助。

于 2014-07-26T06:00:09.347 回答
1

您只需要从 Django 项目目录运行 IDLE。如果您使用的是 virtualenv:

cd /your/virtualenv/directory
. bin/activate
cd project_directory
python -m idlelib.idle

就这样。您可以从 Django 项目中导入和运行任何模块和函数。

于 2018-07-06T08:32:12.937 回答
0

创建一个快捷方式,然后将其修改为具有类似于以下的参数:

C:\Python27\pythonw.exe c:\Python27\lib\idlelib\idle.py -r d:\projects\project_X\manage.py shell

如果您PYTHONSTARTUP在 Windows 上使用,它将运行,但随后它将启动一个新进程,丢失您可能在 file.xml 中定义的任何功能PYTHONSTARTUP

实际上你会看到它在下面启动了两次(第一次是绿色,然后是红色):

Python 2.7.2(默认,2011 年 6 月 12 日,15:08:59)[MSC v.1500 32 bit (Intel)] on win32 Type copyrightcreditslicense()了解更多信息。

startup.py 刚刚运行

Python 2.7.2(默认,2011 年 6 月 12 日,15:08:59)[MSC v.1500 32 位(英特尔)] on win32 类型help,,或了解更多信息copyright,(InteractiveConsole)creditslicense

在安装虚拟 env 和 shell_plus 和 ipython 之前这是真的。这 3 个中的一个将其冲洗掉 - 现在在 IDLE 控制台中获取垃圾:

0;32mIn 1;32m1 0;32m: 0m

于 2012-04-26T16:49:01.767 回答
0

如果您的路径空闲,您可以运行:

idle -r manage.py shell

如果您的路径中没有空闲,并且不想添加它,您可以运行:

python -m idlelib -r manage.py shell

*此答案基于 Alexandro Perez 的答案

于 2021-01-30T21:29:13.587 回答
0

假设您在 Windows 上:

  1. 右键单击您的 IDLE 链接以获取属性。将目标路径更改为运行 django-project 的路径(包含 manage.py 文件的目录。
  2. 启动空闲
  3. 执行

    导入操作系统;os.environ.setdefault("DJANGO_SETTINGS_MODULE","my_project_root_name.settings")

现在您的 IDLE 设置了正确的上下文来了解您的设置并在您的 django-path 中执行类。

请告诉我您是否可以想到一种更优雅的方式。(在 Win 10 下使用 Python 3.6 测试)

于 2017-03-23T01:23:29.313 回答
0

只需使用相同的代码创建一个名为manage2.py(在同一目录中)的新文件,manage.py并将行替换execute_from_command_line(sys.argv)execute_from_command_line(['shell']). 之后只是manage.py在空闲状态下运行。这种方法的优点是在空闲时使用代码完成。

于 2021-05-10T16:51:25.163 回答