[Anfängerfrage] Module und Pakete -> gelöst!

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
zenker
User
Beiträge: 19
Registriert: Dienstag 25. August 2009, 17:04

Version: Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)


Hallo,

ich beschäftige mich jetzt nach langer Abstinenz wieder mit Python und nutze dazu unter anderem die Seite

http://de.wikibooks.org/wiki/Python_unter_Linux:_Module

In ihr ist beschrieben, das man Module in "Pakete" zusammen packen kann, sprich die Module sind in Unterverzeichnisse im Programmordner untergebracht

Folgende Situation:

Programmordner "erste_schritte"
enthält auch den Ordner "abc"

Im Ordner "abc" ist eine "__init__.py" enthalten und die Datei "modul.py"

folgendes steht im "Hauptprogramm":

Code: Alles auswählen

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

import abc.modul

abc.modul.main()
Aber schon beim starten des Hauptprogramms unter Geany und in der Konsole bekomme ich folgende Info:

"Traceback (most recent call last):
File "./001_hallo_welt.py", line 4, in <module>
import abc.modul
ImportError: No module named modul"

"001_hallo_welt.py" ist hierbei das Hauptprogramm, aus dem eine Funktion ("main()") in "modul" aufgerufen werden soll.


Wieso läuft das nicht?
Für Antworten im voraus herzlichen Dank!
Zuletzt geändert von zenker am Donnerstag 15. Juli 2010, 21:03, insgesamt 1-mal geändert.
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Code: Alles auswählen

>>> import abc
>>> import sys
>>> sys.modules['abc']
<module 'abc' from 'C:\Python26\lib\abc.pyc'>
Das Modul "abc" ist in der Stdlib bereits vorhanden, einfach einen anderen Namen für das Paket wählen. ("modul" ist auch kein guter Name!)
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Was mich allerdings wundert ist, dass das Verzeichnis des Skriptes frueher im Pfad steht. Seltsam, dass das Verhalten fuer Pakete von dem fuer Module abweicht.

Warum eigtl das Wikibook und nicht das Tutorial?
zenker
User
Beiträge: 19
Registriert: Dienstag 25. August 2009, 17:04

ms4py hat geschrieben:Das Modul "abc" ist in der Stdlib bereits vorhanden, einfach einen anderen Namen für das Paket wählen. ("modul" ist auch kein guter Name!)
Oh, danke! Nachdem ich die Namen mal geändert habe funktioniert es! Danke nochmal!
Das ganze war auch bloß ein Test. Ein besserer Name als "modul" ist natürlich angebracht.
Zuletzt geändert von zenker am Donnerstag 15. Juli 2010, 21:05, insgesamt 1-mal geändert.
zenker
User
Beiträge: 19
Registriert: Dienstag 25. August 2009, 17:04

cofi hat geschrieben:Warum eigtl das Wikibook und nicht das Tutorial?
Ich finde, daß das Wikibook eigentlich ganz gut erklärt. Es führt relativ schnell zu ersten Erfolgen.
Das Tutorial (->noch nicht reingeguckt) werde ich mir aber später auch noch mal anschauen!
Antworten