我希望在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.
你能帮助我吗?
答案 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位(英特尔)]
输入copyright
,credits
或license()
以获取更多信息。
startup.py刚刚运行
win32上的 Python 2.7.2 (默认,2011年6月12日,15:08:59)[MSC v.1500 32位(英特尔)]
键入help
,copyright
,credits
或license
以获取更多信息,
(InteractiveConsole)
在安装虚拟环境和shell_plus以及ipython之前都是如此。其中一个将其收缩 - 现在在IDLE控制台中获取垃圾:
0; 32mIn 1; 32m1 0; 32m:0m
答案 2 :(得分:0)
要在cmd中使用空闲,我在Windows 7中执行了以下操作:
确保路径系统环境变量包含idle.py位置的路径(如C:\ Python27 \ Lib \ idlelib)。当我在那里时,我也确保包括python和Scripts文件夹(后者包含django-manage.py,当由pip安装时)
路径: C:\ Python27 \; C:\ Python27 \ Scripts; C:\ Python27 \ Lib \ idlelib; ...
上面显示的路径可能因您安装的python而异,
可选:为避免输入.py扩展名,我确保 PATHTEXT 系统环境变量包含.PY扩展名。
PATHTEXT :.COM; 。可执行程序; ...,的的.py 强>
现在我在处理cmd时所做的就是输入以下命令来运行空闲:
打开一个空闲的文件(位于同一目录中):
idle models.py
这将打开要在空闲时编辑的models.py文件
使用idle打开shell(与manage.py在同一目录中)
idle -r manage.py shell
注意:如果.PY不在PATHTEXT系统环境变量中,您可能需要将.py扩展名添加到空闲
你有它,现在你可以使用IDLE了。希望有所帮助。
答案 3 :(得分:0)
假设您在Windows上:
执行
导入os; os.environ.setdefault( “DJANGO_SETTINGS_MODULE”, “my_project_root_name.settings”)
现在你的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
。这种方法的优点是空闲时使用代码补全。