Python-Dokumentation für django.views.generic

Wenn ich in der Kommandozeile (Terminal in Ubuntu) folge folge:

pydoc django.views.generic 

Ich habe folgende Fehler:

 problem in django.views.generic - <class 'django.core.exceptions.ImproperlyConfigured'>: Requested setting DEFAULT_INDEX_TABLESPACE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings 

Wie kann man das Problem lösen?

  • Schwierigkeiten, übergebende Werte und Referenzen in Python zu verstehen
  • In pandas, wie kann ich den Index zurücksetzen, ohne eine neue Spalte hinzuzufügen?
  • Wie fügt man Paketdaten rekursiv in Python setup.py hinzu?
  • Mit Basis-Layout-Vorlagen in Chamäleon
  • Ziehen und Kopieren von Bildern in wxPython
  • Python count Tage ignorieren Wochenenden
  • Relative Importe in Python 3
  • Python-Konstruktion von Gitter, das Moleküle fängt - funktioniert nicht richtig
  • 2 Solutions collect form web for “Python-Dokumentation für django.views.generic”

    Das Importieren vieler Djangos Module zieht in anderen Modulen, die davon abhängen, in einer Django Projektumgebung zu sein. Erstellen Sie ein Dummy-Projekt und verwenden Sie die Einstellungen.

     $ django-admin.py startproject dummy $ cd ./dummy $ DJANGO_SETTINGS_MODULE=dummy.settings pydoc django.views.generic 

    Beachten Sie die letzte Zeile, die die env var DJANGO_SETTINGS_MODULE auf den DJANGO_SETTINGS_MODULE der settings.py-Datei setzt. Normalerweise brauchst du das nicht seit manage.py und wsgi.py setze das für dich ein, aber pydoc weiß nichts davon.

    Wenn Sie bereits ein Projekt haben, können Sie das Dummy-Projekt offensichtlich überspringen und nutzen Sie einfach die Einstellungen Ihres Projekts.


    Bei der Verwendung von neueren Versionen von Django müssen Sie auch django.setup() anrufen, bevor Django in der Regel verwendbar ist. Wickeln Sie pydoc in ein Skript, um dies zu tun, anstatt rufen Sie pydoc direkt an.

    my_pydoc.py

     import django import pydoc import os os.environ['DJANGO_SETTINGS_MODULE'] = 'dummy.settings' django.setup() pydoc.cli() 
     python my_pydoc.py django.views.generic 

    Während die Antwort von davidism für einige Dinge funktioniert, wird es nicht für meine eigenen Apps funktionieren, da ich eine AppRegistryNotReady Ausnahme bekam. Ich fand, dass ich in meinen App-Dateien etwas Ad-Hocke machen musste, um es zu arbeiten:

     import sys importer = sys.modules['__main__'].__spec__ if importer.name == 'pydoc': import django django.setup() 

    Endlich funktioniert es, zumindest für views.py . Andere Dateien können andere Lösungen benötigen. Und das ist, ich bin ganz sicher, spröde und versionabhängig. Es funktioniert für Django 1.10.2 und Python 3.5.2.


    Duh Sys.argv [0] hat die gleiche info, /usr/lib/python3.5/pydoc.py .

    So könnte es einfacher und zuverlässiger durch:

     import sys, os if os.path.splitext(os.path.basename(sys.argv[0]))[0] == 'pydoc': import django django.setup() 
    Python ist die beste Programmiersprache der Welt.