2012-04-13 30 views
33

Python kullanıyorum 3.2.2. Basit bir program yazdığımda, bu problemle karşılaşıyorum.NameError: name 'reload' tanımlanmadı

>>> reload(recommendations) 
Traceback (most recent call last): 
    File "<pyshell#6>", line 1, in <module> 
    reload(recommendations) 
NameError: name 'reload' is not defined 

Nasıl yapmalıyım?

+7

"Basit bir program" muhtemelen "yeniden yükleme" ye ihtiyaç duymaz. – geoffspear

+0

"Yeniden yükle (öneriler)", "suggestions.abc()" adresini kullanmak istiyorum. Ancak önerileri bulamıyor – MindHacks

+0

@MindHacks Önerileri almadıysanız, yeniden yüklemezseniz, içe aktarırsınız. "içe aktarma önerileri". Neden '' reload() '' yi kullanmanız gerektiğini düşündünüz? –

cevap

82

Muhtemelen importlib.reload() numaralı telefonu kullanmak istiyorsunuz.

from importlib import reload 

Python 2.x, bu bir builtin, ama 3.x, bu importlib modülde bu.

Yorumlayıcı dışında reload()'un kullanılmasının gereksiz olduğunu unutmayın, ne yapmaya çalışıyordunuz?

+0

Teşekkür ederim, işe yarıyor. Ancak, yeniden yüklemeyi kullanmak istersem, dosyayı her seferinde içe aktarmalıyım? – MindHacks

+0

@MindHacks: Hangi "dosya" hakkında konuşuyorsun? –

+0

@Sven Marnach: imp ... – MindHacks

6

@Gareth Latty'nin yanıtı için bir güncelleştirme. Python 3.4'te imp amortismana tabi tutulmuştur. Şimdi importlib.reload()'u istiyorsun.

from importlib import reload