当 shell_plus 次 call_command 时?
django shell_plus timeit call_command?
我写了一个 django 命令,想在里面查看它的时间 django shell_plus
我这样做:
import timeit
from django.core.management import call_command
timeit.timeit("""call_command('prova')""", number=3 )
该命令应运行 3 次并输出其运行ning 次。
如果 运行 直接 'call_command' 它有效,如果在 timeit 内部调用它会抛出此错误:
/usr/lib/python3.5/timeit.py in timeit(self, number)
176 gc.disable()
177 try:
--> 178 timing = self.inner(it, self.timer)
179 finally:
180 if gcold:
/usr/lib/python3.5/timeit.py in inner(_it, _timer)
NameError: name 'call_command' is not defined
timeit
始终在新的执行上下文中运行,它无法访问您之前导入的任何内容。您需要通过设置代码传递一个单独的参数:
timeit.timeit("call_command('prova')", number=3, setup='from django.core.management import call_command' )
参见timeit docs。
我写了一个 django 命令,想在里面查看它的时间 django shell_plus
我这样做:
import timeit
from django.core.management import call_command
timeit.timeit("""call_command('prova')""", number=3 )
该命令应运行 3 次并输出其运行ning 次。
如果 运行 直接 'call_command' 它有效,如果在 timeit 内部调用它会抛出此错误:
/usr/lib/python3.5/timeit.py in timeit(self, number)
176 gc.disable()
177 try:
--> 178 timing = self.inner(it, self.timer)
179 finally:
180 if gcold:
/usr/lib/python3.5/timeit.py in inner(_it, _timer)
NameError: name 'call_command' is not defined
timeit
始终在新的执行上下文中运行,它无法访问您之前导入的任何内容。您需要通过设置代码传递一个单独的参数:
timeit.timeit("call_command('prova')", number=3, setup='from django.core.management import call_command' )
参见timeit docs。