Seite 1 von 1

Import schlägt fehl

Verfasst: Sonntag 8. November 2009, 17:57
von Siassei
Hallo,

ich würde scons gerne aus Build-System für C++ benutzen. Leider schlägt das Importieren einer eigenen Module fehl.

Die Python-Skripte liegen vom bash-Verzeichnis, wo SConstruct liegt und scons aus der Konsole gestartet wird, aus in build/tools/Shell.py

Code: Alles auswählen

#
# Imports
#

import glob
import os
import os.path
import platform
import re
import shutil
import string
import sys
import time
from tempfile import mkdtemp

import build.tools.Shell # Zeile 42
import build.tools.OpenCAx
import build.tools.OpenCAxTools

# ...
Die Fehlermeldung lautet

Code: Alles auswählen

$ scons
scons: Reading SConscript files ...
ImportError: No module named build.tools.Shell:
  File "/home/siassei/Projects/opencax/SConstruct", line 42:
    import build.tools.Shell
Woran liegt das? Der Code in der Shell.py lautet

Code: Alles auswählen

class Shell:
    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    OKGREEN = '\033[92m'
    WARNING = '\033[93m'
    FAIL = '\033[91m'
    ENDC = '\033[0m'

    def disableColor(self):
        self.HEADER = ''
        self.OKBLUE = ''
        self.OKGREEN = ''
        self.WARNING = ''
        self.FAIL = ''
        self.ENDC = ''

    def printLine(s):
	print s

    def printFatal(before = '', s = '', after = ''):
	print before + FAIL + 'Fatal Error: '+ s + ENDC + after

    def printError(before = '', s = '', after = ''):
	print before + FAIL + 'Error: '+ s + ENDC + after

    def printWarning(before = '', s = '', after = ''):
	print before + WARNING + 'Warning: '+ s + ENDC + after

    def printHinweis(before = '', s = '', after = ''):
	print before + OKBLUE + 'Hinweis: '+ s + ENDC + after

    def printNotice(before = '', s = '', after = ''):
	print before + OKGREEN + s + ENDC + after


Verfasst: Sonntag 8. November 2009, 18:02
von derdon
Die Verzeichnisstruktur wird interessanter sein als der Code von Shell.py. Übrigens:

Code: Alles auswählen

>>> def foo():
... pass
  File "<input>", line 3
    pass
       ^
IndentationError: expected an indented block

Verfasst: Montag 9. November 2009, 19:46
von Siassei
Hallo,

die Verzeichinsstruktur ist: (linux, copy&paste aus der Url)
/home/ ... / Verzeichnes des scons Befehl /build/tools

Was möchtest du mir mit deine Code-Snippest sagen?

Verfasst: Montag 9. November 2009, 19:50
von Pekh
zum Beispiel wäre es interessant, zu wissen, ob in allen Verzeichnissen jeweils eine Datei namens '__init__.py' liegt.

Verfasst: Montag 9. November 2009, 19:50
von Dav1d
Dass du Einrückungsfehler in deinem Code hast ;)

Verfasst: Montag 9. November 2009, 21:27
von Siassei
Pekh hat geschrieben:zum Beispiel wäre es interessant, zu wissen, ob in allen Verzeichnissen jeweils eine Datei namens '__init__.py' liegt.
Ah ja :oops: Das dürfte es gewessen sein. Kanns zur Zeit nicht testen, aber schon mal vielen dank.