2015-03-02 5 views
5

मैं Django 1.7.5 का उपयोग कर रहा हूं, और pinax-project-teams स्टार्टर बनाने की कोशिश कर रहा हूं। python manage.py check चलाते समय, मुझे `django.core.exceptions.AppRegistryNotReady के साथ हिट मिलती है: ऐप्स अभी तक लोड नहीं होते हैं। 'डीजेगो (और पिनैक्स): वापस आ रहा है "AppRegistryNotReady: ऐप्स अभी तक लोड नहीं हुए हैं।" अपवाद

मैंने यहां स्टैक ओवरफ्लो और अन्यत्र पर समान समान त्रुटियों के माध्यम से पढ़ा है, और ऐसा लगता है कि यह त्रुटि विभिन्न कारणों से आती है और इसमें सुंदर परिस्थिति-विशिष्ट सुधार शामिल होते हैं। इसलिए मैं कुछ समाधानों को पहले से हटा सकता हूं: 1) यह पिछले Django संस्करण से अपग्रेड नहीं है; और 2) परिणामस्वरूप, wsgi.py नए from django.core.wsgi import get_wsgi_application का सही ढंग से उपयोग कर रहा है।

पूर्ण स्टैकट्रेस: ​​autoload(["receivers"]) जो settings.INSTALLED_APPS में मॉड्यूल को लोड करता है, और admin.autodiscover():

(env)[email protected]:webapp.git$ python manage.py check 
Traceback (most recent call last): 
    File "manage.py", line 9, in <module> 
    startup.run() 
    File "/Users/trevor/zenith/webapp.git/djangoapp/startup.py", line 22, in run 
    admin.autodiscover() 
    File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/__init__.py", line 23, in autodiscover 
    autodiscover_modules('admin', register_to=site) 
    File "/usr/local/lib/python2.7/site-packages/django/utils/module_loading.py", line 67, in autodiscover_modules 
for app_config in apps.get_app_configs(): 
    File "/usr/local/lib/python2.7/site-packages/django/apps/registry.py", line 137, in get_app_configs 
    self.check_apps_ready() 
    File "/usr/local/lib/python2.7/site-packages/django/apps/registry.py", line 124, in check_apps_ready 
    raise AppRegistryNotReady("Apps aren't loaded yet.") 
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet. 

त्रुटि pinax के startup.run(), दो कॉल के होते हैं जो की वजह से उपजी।

def autoload(submodules): 
    for app in settings.INSTALLED_APPS: 
     mod = import_module(app) 
     # print('Module: \t\n%s' % str(mod)) 
     for submodule in submodules: 
      # print('Submodule: \t\n%s\n' % str(submodule)) 
      try: 
       import_module("{0}.{1}".format(app, submodule)) 
      except: 
       if module_has_submodule(mod, submodule): 
        raise 

यह INSTALLED_APPS माध्यम से चला जाता है और सफलतापूर्वक सूचीबद्ध सभी क्षुधा का आयात करता है, लेकिन फिर admin.autodiscover() सही होने के बाद Apps aren't loaded yet. संदेश फेंकता है: यहाँ autoload है। मुझे यकीन नहीं है कि मैं क्या खो रहा हूं ... कुछ स्पष्ट, संभावना है!

ओह, और आखिरकार: मैंने import django; django.setup() फ़िक्स के बारे में पढ़ा है, लेकिन मैंने सोचा कि स्क्रिप्ट के लिए & इंटरैक्टिव है, डीजेंगो प्रोजेक्ट्स नहीं? क्योंकि मैंने इंटरैक्टिव चलाने की कोशिश की है, मेरी प्रोजेक्ट सेटिंग्स आयात करें, कॉन्फ़िगर करें() चलाएं, django.setup() चलाएं, और बाहर निकलें, लेकिन जब मैं रनरवर निष्पादित करने का प्रयास करता हूं तो इसका उपरोक्त समस्या पर कोई प्रभाव नहीं पड़ता है ...: -/कोई भी विचार?

+0

ओह, और मैं अपने settings.py ऊपर पोस्ट करने के लिए खुश हूँ, urls.py, कुछ भी जरूरत है, मैं तो बस नहीं मूल पोस्ट में पहले से ही सामग्री पर पाइल को करना चाहता था। – TCAllen07

+0

** एक अद्यतन: ** मैं 'django.setup() डालने की कोशिश की' भीतर pinax के 'startup.run()', बस से पहले 'autoload ([ 'रिसीवर'])' और 'admin.autodiscover()', और इस AppRegistry त्रुटि को ठीक है, लेकिन जिसके परिणामस्वरूप सर्वर प्रक्रिया वास्तव में pinax-परियोजना टीमों ऐप्स के किसी भी नहीं है उपलब्ध/कार्यात्मक (यानी खाते, Kaleo, विकी, उपयोगकर्ताओं, सभी गैर-मौजूद)। – TCAllen07

उत्तर

3

संपादित करें - अद्यतन & सारांश: pinax-परियोजना टीमों कोड में कम से कम एक नया Django परियोजना की प्रारंभिक "कच्चे" स्थापना पर नहीं, Django 1.7 के साथ पूरी तरह से संगत नहीं है। का संभावित हल के लिए कुछ कदम के होते हैं: से startup.py (line 21, in run())

  1. निकालें स्पष्ट/अनावश्यक एप्लिकेशन लोड हो रहा है: टिप्पणी-आउट या admin.autodiscover() को हटा दें।
  2. स्पष्ट रूप से Django 1.6.5 (pip install Django==1.6.5) स्थापित करें।
  3. django 1.6 संस्करण (python manage.py syncdb) के माध्यम से डेटाबेस सिंक करें।
  4. स्पष्टीकरण स्थापित Django 1.7.5 (pip install Django==1.7.5)।

मूल उत्तर पोस्ट: मुझे लगता है कि मैं इसे नीचे थोड़ा संकुचित कर दिया है, नहीं तो दायरे में, कम से कम मूल कारण में। हालांकि मेरी परियोजना Django < = 1.6 से 1.7 तक अपग्रेड नहीं थी, फिर भी यह एक मुद्दा है। pinax-project-team में कुछ ऐसा डिफ़ॉल्ट रूप से Django 1.7 के साथ असंगत बनाता है। एक समान इंस्टॉल syncdb और फिर runserver को 1.6.5 django स्थापना पर अनुमति देगा, लेकिन django-1.7.5 Apps aren't loaded yet फेंकता है।

मुझे Django 1.7 release notes की एक अच्छी लंबी सूची मिली, जिसे मैं देख रहा हूं कि मैं असंगतता का कारण निर्धारित कर सकता हूं या नहीं।

कम से कम समस्याओं में से एक Pinax की "अतिरिक्त" Django के अपने स्टार्टअप प्रक्रिया के दौरान startup.py में स्वत: खोज, जो as of 1.7 release is automatically executed है। यह ऐप-लोडिंग समस्या हल करता है, ऐसा प्रतीत होता है ... लेकिन django.contrib.sites में एक और समस्या है। जब 1.7 में migrate चल रहा है, माइग्रेशन में से एक, डीबी में एक लापता तालिका के कारण विफल हो जाता है विशेष रूप से django_site (नीचे पूर्ण ट्रेस)। इस तालिका में 1.6 Django में मौजूद का डाटाबेस स्थापित करता है। 1.6 परियोजना में sqlite फ़ाइल को इंगित करने के लिए 1.7 की सेटिंग्स को संशोधित करने से यह समस्या हल हो जाती है, और voilà, यह काम करता है। तो पिनैक्स-प्रोजेक्ट-टीमों और डीजेगो 1.7 के बीच पाए गए केवल दो संघर्ष हैं।

(env)[email protected]:mysite7$ python manage.py migrate 
Operations to perform: 
    Synchronize unmigrated apps: wiki, account, eventlog, kaleo, profiles, easy_thumbnails, pinax_theme_bootstrap, teams, bootstrapform 
    Apply all migrations: admin, contenttypes, sites, auth, sessions 
Synchronizing apps without migrations: 
    Creating tables... 
    Installing custom SQL... 
    Installing indexes... 
Traceback (most recent call last): 
    File "manage.py", line 11, in <module> 
    execute_from_command_line(sys.argv) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line 
    utility.execute() 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 377, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute 
    output = self.handle(*args, **options) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 128, in handle 
    created_models = self.sync_apps(connection, executor.loader.unmigrated_apps) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 298, in sync_apps 
    call_command('loaddata', 'initial_data', verbosity=self.verbosity, database=connection.alias, skip_validation=True, app_label=app_label, hide_empty=True) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 115, in call_command 
    return klass.execute(*args, **defaults) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute 
    output = self.handle(*args, **options) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/core/management/commands/loaddata.py", line 61, in handle 
    self.loaddata(fixture_labels) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/core/management/commands/loaddata.py", line 91, in loaddata 
    self.load_label(fixture_label) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/core/management/commands/loaddata.py", line 148, in load_label 
    obj.save(using=self.using) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/core/serializers/base.py", line 173, in save 
    models.Model.save_base(self.object, using=using, raw=True) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/db/models/base.py", line 617, in save_base 
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/db/models/base.py", line 679, in _save_table 
    forced_update) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/db/models/base.py", line 723, in _do_update 
    return filtered._update(values) > 0 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/db/models/query.py", line 600, in _update 
    return query.get_compiler(self.db).execute_sql(CURSOR) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 1004, in execute_sql 
    cursor = super(SQLUpdateCompiler, self).execute_sql(result_type) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 786, in execute_sql 
    cursor.execute(sql, params) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/db/backends/utils.py", line 81, in execute 
    return super(CursorDebugWrapper, self).execute(sql, params) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/db/backends/utils.py", line 65, in execute 
    return self.cursor.execute(sql, params) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/db/utils.py", line 94, in __exit__ 
    six.reraise(dj_exc_type, dj_exc_value, traceback) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/db/backends/utils.py", line 65, in execute 
    return self.cursor.execute(sql, params) 
    File "/Users/trevor/code/pinax/7-pinaxtest/env/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py", line 485, in execute 
    return Database.Cursor.execute(self, query, params) 
django.db.utils.OperationalError: Problem installing fixture '/Users/trevor/code/pinax/7-pinaxtest/mysite7/fixtures/initial_data.json': Could not load sites.Site(pk=1): no such table: django_site 
3

पोस्टग्रेस्क्ल और अन्य डेटाबेस के बीच अंतर महत्वपूर्ण है। यदि आप SQLite बैकएंड का उपयोग कर रहे हैं, तो यह आपको एकाधिक स्थानों में पुन: उपयोग के लिए डेटाबेस फ़ाइल को कॉपी करने की अनुमति देगा। फिर आपके पास एक 1.6 प्रोजेक्ट और 1.7 प्रोजेक्ट हो सकता है, जो बिना किसी फ़ाइल को अपग्रेड करने और/या डाउनग्रेड करने की आवश्यकता के बिना रिपोर्ट कर सकता है।

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