2012-02-11 17 views
10

नहीं ढूंढ सकता है जब मैं अपने ऐप में ./manage.py process_email करता हूं, तो मुझे ImportError: No module named commands.process_email मिलता है।django कमांड कमांड मॉड्यूल

मेरे निर्देशिका लेआउट है:

./ 
├── __init__.py 
├── admin.py 
├── forms.py 
├── management 
│ ├── __init__.py 
│ └── commands 
│  ├── __init.py__ 
│  └── process_email.py 
├── models.py 
├── views.py 

process_email आदेश का स्रोत है:

from django.core.management.base import BaseCommand, CommandError 
from django.conf import settings 
from website.event.models import Event 

class Command(BaseCommand): 

    def handle(self, *args, **options): 
     process_email() 

def process_email(): 
    print "processing email" 

और त्रुटि मैं हो रही है:

(website.com)[email protected] ~/code/website.com/website $ > ./manage.py process_email 
Traceback (most recent call last): 
    File "./manage.py", line 14, in <module> 
    execute_manager(settings) 
    File "/Users/kings/code/website.com/lib/python2.6/site-packages/django/core/management/__init__.py", line 438, in execute_manager 
    utility.execute() 
    File "/Users/kings/code/website.com/lib/python2.6/site-packages/django/core/management/__init__.py", line 379, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/Users/kings/code/website.com/lib/python2.6/site-packages/django/core/management/__init__.py", line 261, in fetch_command 
    klass = load_command_class(app_name, subcommand) 
    File "/Users/kings/code/website.com/lib/python2.6/site-packages/django/core/management/__init__.py", line 67, in load_command_class 
    module = import_module('%s.management.commands.%s' % (app_name, name)) 
    File "/Users/kings/code/website.com/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
ImportError: No module named commands.process_email 

जब मैं ./manage.py करना , यह "उपलब्ध उपदेश:" में process_email दिखाता है। यह मुझे बताता है कि process.py द्वारा process_email.py देखा जाता है। init .py खाली है (मुझे नहीं लगता कि यह महत्वपूर्ण है लेकिन केवल एफवाईआई)।

+1

हैलो, एसओ में आपका स्वागत है। बस एक सूचक - पेस्टबिन का उपयोग करने के बारे में चिंता न करें, आपका कोड/निर्देशिका लेआउट यहां पर आपका स्वागत है (वास्तव में यह हमें मदद करता है अगर आप करते हैं)। –

+0

चेतावनी के रूप में, Django imp.find_module का उपयोग कर रहा है जो ज़िप्ड अंडे का सम्मान नहीं करता है: http://stackoverflow.com/questions/28962344/imp-find-module-which-supports-zipped-ggs – benjaoming

उत्तर

18

__init.py__ सही ढंग से नामित है? मुझे यकीन नहीं है कि यह आपके पेड़ में एक टाइपो है, या वास्तव में इस तरह नामित है।

पायथन __init__.py युक्त मॉड्यूल के रूप में निर्देशिका करता है - हालांकि, यदि वह फ़ाइल मौजूद नहीं है तो यह उस निर्देशिका को संसाधित नहीं करेगा - इसलिए यह __init.py__ या "मॉड्यूल" को संसाधित नहीं करेगा। यह फ़ाइल रिक्त होने के लिए बिल्कुल ठीक है - हालांकि, यदि यह नहीं है तो आप इससे भी आयात कर सकते हैं (django यह बहुत कुछ करता है) और आप मॉड्यूल से निर्यात किए जाने वाले कार्यों को भी परिभाषित कर सकते हैं।

+0

धन्यवाद। हां, मैंने फ़ाइल का गलत नाम दिया था। मैं एसओ के साथ अपने पॉइंटर्स की सराहना करता हूं, और भविष्य में कोड डाल दूंगा .. प्रश्न में बहुत कोड होने पर मुझे व्यक्तिगत रूप से परेशान लगता है, और प्रश्न का सार खो गया है :) – Trewq

+1

@Trewq कोई समस्या नहीं - मैं कोड को नीचे रखने की कोशिश करता हूं जहां मुझे लगता है कि त्रुटि है - मैं फिर स्पष्टता के लिए प्रश्न के निचले हिस्से में समस्या को पुन: स्थापित करता हूं ताकि वह सभी कोड के बाद खो न जाए! –

संबंधित मुद्दे