import Fehler beim importieren eines Models

Django, Flask, Bottle, WSGI, CGI…
Antworten
erdmulch
User
Beiträge: 230
Registriert: Samstag 17. Juli 2010, 19:50

Hallo zusammen,

ich habe mit Django ein neues Projekt erstellt.
danach habe ich ein Model angelgt um die Datensätze in eine Datenbank abzulegen.
Nun wollte ich das Model in einer anderen Klasse importieren siehe code:

Code: Alles auswählen

#!/usr/bin/env python
#-*- coding: utf-8 -*-

from pypost.articles.models import Article, Talkback
from datetime import datetime

def article():
        a = Article(title = 'Python und Django', slug='python-and-django',pub_date=datetime.now(), author='Farid Hajji', content='Python and Django are a great')
        a.save
article()
leider kommt folgende Fehlermeldung:

Peter@Server:~/tmp/djangoprojs/pypost/articles$ ./Buch.py
Traceback (most recent call last):
File "./Buch.py", line 10, in <module>
from pypost.articles.models import Article, Talkback
ImportError: No module named pypost.articles.models
Peter@Server:~/tmp/djangoprojs/pypost/articles$

Es sieht so aus als würde kein Model geben. Dieses Modul gibt es aber definitiv, auch der Pfad ist richtig

Hier ist das Model dazu

Code: Alles auswählen

from django.db import models

class Article(models.Model):
    title=    models.CharField(max_length=100)
    slug=     models.SlugField(max_length=50)
    pub_date= models.DateTimeField('date published')
    author=   models.CharField('by line', max_length=40)
    content = models.TextField('the article')

    def __str__(self):
        return self.slug

    class Admin:
        pass

class Talkback(models.Model):
    article=    models.ForeignKey(Article)
    tbauthor=   models.CharField('tb author', max_length=40)
    tbemail=    models.EmailField('email talkbacker')
    tbloc=      models.CharField('city or country', max_length=20)
    tbsubject = models.CharField('subject', max_length=40)
    tbcontent = models.CharField('the talkback', max_length=250)

    def __str__(self):
        return self.tbsubject

    class Admin:
        pass


kann mir jemand sagen was ich falsch mache?
Zuletzt geändert von Hyperion am Mittwoch 1. August 2012, 18:53, insgesamt 1-mal geändert.
Grund: Code in Python-Code Tags gesetzt.
deets

Ist /tmp/djangoprojs/ im Pfad? Hast du __init__.py-Dateien in pypost und articles? Und hast du das Tutorial ueber Module und Packages gelesen?
erdmulch
User
Beiträge: 230
Registriert: Samstag 17. Juli 2010, 19:50

war mir nicht sicher ob es an dem lag oder aber ob ich generell was falsch mache.
habe den Pythonpath mit folgendem Kommando gesetzt:
export PYTHONPATH=/tmp/djangoprojs

wenn ich dann das Python script "Buch.py" ausführe, kommt folgende Fehlermeldung

Code: Alles auswählen

Peter@Server:~/tmp/djangoprojs/pypost/articles$ ./Buch.py Traceback (most recent call last):
  File "./Buch.py", line 10, in <module>
    from pypost.articles.models import Article, Talkback
  File "/home/Peter/tmp/djangoprojs/pypost/articles/models.py", line 1, in <module>
    from django.db import models
  File "/usr/lib/pymodules/python2.6/django/db/__init__.py", line 10, in <module>
    if not settings.DATABASE_ENGINE:
  File "/usr/lib/pymodules/python2.6/django/utils/functional.py", line 269, in __getattr__
    self._setup()
  File "/usr/lib/pymodules/python2.6/django/conf/__init__.py", line 38, in _setup
    raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.

kann es sein, dass mein Ubuntu Probleme macht?
deets

Hast du dir die Zeit, die du in das schreiben dieses Posts aufgewendet hast mal gengoennt, um nach der Fehlermeldung zu googeln?

http://lmgtfy.com/?q=ImportError%3A+Set ... +undefined.+
Antworten