从IDLE运行Django

时间:2009-09-20 08:00:08

标签: django python-idle

我希望在Windows中测试我的django项目形式IDLE shell。 我运行以下命令

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

但我得到以下错误。

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.

你能帮助我吗?

7 个答案:

答案 0 :(得分:2)

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

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

python manage.py shell

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

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

答案 1 :(得分:0)

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

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

如果你在Windows上有PYTHONSTARTUP,它会运行但是它会启动一个新进程,丢失你在PYTHONSTARTUP文件中定义的任何func。

有效地,你会看到它在下面开始两次(第一次是绿色,然后是红色):

win32上的

Python 2.7.2 (默认,2011年6月12日,15:08:59)[MSC v.1500 32位(英特尔)] 输入copyrightcreditslicense()以获取更多信息。

startup.py刚刚运行

win32上的

Python 2.7.2 (默认,2011年6月12日,15:08:59)[MSC v.1500 32位(英特尔)] 键入helpcopyrightcreditslicense以获取更多信息, (InteractiveConsole)

在安装虚拟环境和shell_plus以及ipython之前都是如此。其中一个将其收缩 - 现在在IDLE控制台中获取垃圾:

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

答案 2 :(得分:0)

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

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

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

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

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

    PATHTEXT :.COM; 。可执行程序; ...,的的.py

  3. 现在我在处理cmd时所做的就是输入以下命令来运行空闲:

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

      idle models.py
      

      这将打开要在空闲时编辑的models.py文件

    • 使用idle打开shell(与manage.py在同一目录中)

      idle -r manage.py shell
      

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

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

答案 3 :(得分:0)

假设您在Windows上:

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

    导入os; os.environ.setdefault( “DJANGO_SETTINGS_MODULE”, “my_project_root_name.settings”)

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

    如果你能想到更优雅的方式,请告诉我。 (使用Python 3.6在Win 10下测试)

答案 4 :(得分:0)

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

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

仅此而已。您可以从Django项目中导入并运行任何模块和功能。

答案 5 :(得分:0)

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

# dplyr approaches:

# group_map: works
mod3 <- mtcars %>%
  group_by(vs) %>%
  group_map(~ lm(hp ~ mpg, data = .x))

expand.model.frame(mod3[[1]], "am")

# mutate / rowwise: does not work
mod4 <- mtcars %>%
  nest_by(vs) %>%
  mutate(models = list(lm(hp ~ mpg, data = data)))

expand.model.frame(mod4$models[[1]], "am")

# mutate / map: works
mod5 <- mtcars %>%
  tidyr::nest(data = !vs) %>%
  mutate(models = purrr::map(data, ~ lm(hp ~ mpg, data = .x)))
  
expand.model.frame(mod5$models[[1]], "am")

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

idle -r manage.py shell

*此答案基于 Alexandro Perez 的 answer

答案 6 :(得分:0)

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