2012-01-17 15 views
13

Profilde kullanmak istediğim e-posta adı verilen bir uygulamada fonksiyonum var.Python içinProfile tanımadı Fonksiyon adı

 exec cmd in globals, locals 
    File "<string>", line 1, in <module> 
    NameError: name 'send_email' is not defined 

Burada ne eksik: Böyle bir şey yapmaya çalıştığınızda bu yönetim komutu çalıştırdığınızda, aşağıdaki hata atıyor, yukarı

from django.core.management import BaseCommand 
    import cProfile 


    class Command(BaseCommand): 
     def handle(self, *args, **options): 
      from email.modname import send_email 
      cProfile.run('send_email(user_id=1, city_id=4)') 

darbeler? CProfile dizeyi nasıl değerlendirir (global/local ad alanında func isimlerini arar)?

cevap

22

Sorun, yöntem tanımınızın içine send_email aktarmanızdır.

Sana runctx kullanmayı öneriyoruz:

cProfile.runctx('send_email()', None, locals()) 

the official documentation Gönderen:

cProfile.runctx(command, globals, locals, filename=None) 

Bu fonksiyon için globals ve halk sözlükleri tedarik eklendi argümanlarla,) (çalıştırmak için benzer komut dizesi.

+0

Teşekkürler Rik, bu en emin şekilde çalıştı. – Ben