Python Modul installieren unter Linux

Probleme bei der Installation?
Benutzeravatar
Blauer Fasan
User
Beiträge: 49
Registriert: Montag 26. März 2007, 15:08
Kontaktdaten:

Samstag 5. Mai 2007, 10:44

Hallo!

Ich wollte kurz fragen, wie ich zum Beispiel das Modul "configobj.py" unter Linux! "installieren" kann (also in welchen Ordner ich des verschieben muss).

Ich habe die Datei bis jetzt in /usr/lib/python2.4/sit-packages/
getan, meine Programme, bei denen ich aber das import-Statement:

Code: Alles auswählen

from configobj import ConfigObj
benutze, laufen nicht, weil diese Fehlermeldung kommt:

ImportError: "No module named configobj"

Ich hoffe ihr könnt mir weiterhelfen... schon mal danke im voraus :)
Dummheit heißt sich in den Vordergrund zu stellen, um gesehen zu werden.
Klugheit heißt sich zurückzuhalten, um zu sehen!
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Samstag 5. Mai 2007, 11:10

Ist in dem Entpackten keine Dateinamens: install oder install.txt?
Du musst meistens noch ein configure.py oder ähnliches aufrufen.

***EDIT***
Ich habe es mir gerade einmal heruntergeladen

1. Du musst im richtigen Verzeichnis zu deiner Version sein.
2. nutz die setup.py im Verzeichnis
3. einfach kopiernen geht (meines Wissens nach) nicht weil keine __init__.py im Ordner liegt.
Benutzeravatar
Blauer Fasan
User
Beiträge: 49
Registriert: Montag 26. März 2007, 15:08
Kontaktdaten:

Samstag 5. Mai 2007, 11:38

Darf ich fragen wo du das runtergeladen hast? (Link)

Ich habe das hier runtergeladen: http://www.voidspace.org.uk/python/conf ... ownloading

Und was meinst du mit dem richtigen Verzeichnis miener Version? Es ist 2.4 und 2.3 installiert, ist automatisch drauf gewesen, benutze Kubuntu...

Danke im voraus... ;)
Dummheit heißt sich in den Vordergrund zu stellen, um gesehen zu werden.
Klugheit heißt sich zurückzuhalten, um zu sehen!
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 5. Mai 2007, 12:10

Ich würde einfach ``configobj.py`` und ``validate.py`` in ``site-packages`` kopieren, damit ist die Sache erledigt. Aber es muss das "richtige" site-packages sein, also das passende zu der Python-Version die du nutzt.

Was Sr4l schreibt ist irgendwie weder zielführend noch verständlich... :roll:
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Samstag 5. Mai 2007, 12:48

Naja ich habe es von sourceforge.net in Version 0.4.4.

Ich meinte nur das es keine __init__.py im Ordner gibt und somit kann man nicht dein Ordner einfach in site-packages kopieren.
Gut die Idee mit einfach in den site-pakages ordner kopieren ist mir auch gekommen, war mir abe rnicht sicher ob man das so macht ( also strukturlos sachen in site-packages ablegen).

Und die setup.py zu nutzen die im entpackten Ordner landet kann auch nicht schaden.

Ich hätte es schon etwas konkreter schreiben können stimmt schon.
Ich denke mir meist mehr, als ich dann in Schrift umsetze ^^.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 5. Mai 2007, 12:59

Sr4l hat geschrieben:Ich meinte nur das es keine __init__.py im Ordner gibt und somit kann man nicht dein Ordner einfach in site-packages kopieren.
Nein, es ist ja auch kein Package.
Sr4l hat geschrieben:Gut die Idee mit einfach in den site-pakages ordner kopieren ist mir auch gekommen, war mir abe rnicht sicher ob man das so macht ( also strukturlos sachen in site-packages ablegen).
``python setup.py install`` macht auch nichts großartig anderes. Das ist praktisch, wenn man auf einem System kein python-dev (aus welchen Gründen auch immer) installiert hat, so kann man die "per Hand" das machen was die distutils normalerweise machen. Oder VCS-Checkouts in site-packages ablegen, auch eine sehr praktische Sache.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Blauer Fasan
User
Beiträge: 49
Registriert: Montag 26. März 2007, 15:08
Kontaktdaten:

Samstag 5. Mai 2007, 13:45

Ich würde einfach ``configobj.py`` und ``validate.py`` in ``site-packages`` kopieren, damit ist die Sache erledigt. Aber es muss das "richtige" site-packages sein, also das passende zu der Python-Version die du nutzt.
Was ist denn das richtige? Es scheint bei mir 2.3 und 2.4 installiert zu sein, ich habe die beiden Dateien einfach in alle site-packages ordner getan, die es bei mir gibt (drei an der Zahl 2.3, 2.4 und /usr/local/lib/python2.4/site-packages/). Aber die import-Anweisung ergibt immer noch einen Fehler. Woran könnte das liegen? Ich brauch dieses Modul unbedingt für die Schule...

Vielen Dank... ;)
Dummheit heißt sich in den Vordergrund zu stellen, um gesehen zu werden.
Klugheit heißt sich zurückzuhalten, um zu sehen!
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 5. Mai 2007, 14:21

Wie sieht bei dir ``sys.path`` aus?

Du kannst auch schauen of es gefunden wird:

Code: Alles auswählen

In [34]: import os, sys
In [36]: for directory in sys.path:
   ....:     full_path = os.path.join(directory, 'configobj.py')
   ....:     print full_path, os.path.exists(full_path)
   ....:
configobj.py False
/usr/local/bin/configobj.py False
/usr/lib/python25.zip/configobj.py False
/usr/lib/python2.5/configobj.py False
/usr/lib/python2.5/plat-linux2/configobj.py False
/usr/lib/python2.5/lib-dynload/configobj.py False
/usr/local/lib/python2.5/site-packages/configobj.py False
/usr/lib/python2.5/site-packages/configobj.py False
/usr/local/lib/python2.5/site-packages/IPython/Extensions/configobj.py False
Bei dir müsste dann irgendwo bei den Pfaden ein True stehen, ansonsten ist die Datei an die falsche Stelle kopiert. Aber du kannst auch configobj.py im aktuellen Verzeichnis haben - du brauchst es nicht zu installieren.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Blauer Fasan
User
Beiträge: 49
Registriert: Montag 26. März 2007, 15:08
Kontaktdaten:

Samstag 5. Mai 2007, 19:03

Also bei dem Testlauf kommt bei mir folgendes heraus:

/usr/lib/python24.zip/configobj.py False
/usr/lib/python2.4/configobj.py False
/usr/lib/python2.4/plat-linux2/configobj.py False
/usr/lib/python2.4/lib-tk/configobj.py False
/usr/lib/python2.4/lib-dynload/configobj.py False
/usr/local/lib/python2.4/site-packages/configobj.py True
/usr/lib/python2.4/site-packages/configobj.py True
/usr/lib/python2.4/site-packages/HTMLgen/configobj.py False
/usr/lib/python2.4/site-packages/Numeric/configobj.py False
/usr/lib/python2.4/site-packages/PIL/configobj.py False
/usr/lib/python2.4/site-packages/wx-2.6-gtk2-unicode/configobj.py False

Das bedeuted ja anscheinend, dass die Datei richtig dort gelandet ist, aber nun verstehe ich nicht, warum ich immer noch die Fehlermeldung bekomme...
:?:
Dummheit heißt sich in den Vordergrund zu stellen, um gesehen zu werden.
Klugheit heißt sich zurückzuhalten, um zu sehen!
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 5. Mai 2007, 19:13

Naja, wenn das kommt sollte ``import configobj`` im Interpreter-Prompt doch wohl funktionieren, oder? Kannst du das normal nachprüfen und gegebenfalls die gesammte Exception posten?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Blauer Fasan
User
Beiträge: 49
Registriert: Montag 26. März 2007, 15:08
Kontaktdaten:

Samstag 5. Mai 2007, 19:21

Also hier die gesamte Fehlermeldung, die erscheint:

Code: Alles auswählen

>python -u SnakeLog_GUI.py
Traceback (most recent call last):
  File "SnakeLog_GUI.py", line 12, in ?
    from configobj import ConfigObj
ImportError: No module named configobj
>Exit code: 0
So, nun habe ich getestet, ob es funktioniert, wenn ich die Dateien im gleichen Ordner einfüge, in dem auch das Programm liegt. Dann geht es, aber ich möchte es doch lieber so machen, dass ich solche Dateien nicht immer im gleichen Ordner haben muss wie das Programm...
Dummheit heißt sich in den Vordergrund zu stellen, um gesehen zu werden.
Klugheit heißt sich zurückzuhalten, um zu sehen!
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 5. Mai 2007, 19:25

Blauer Fasan hat geschrieben:Also hier die gesamte Fehlermeldung, die erscheint:

Code: Alles auswählen

>python -u SnakeLog_GUI.py
Traceback (most recent call last):
  File "SnakeLog_GUI.py", line 12, in ?
    from configobj import ConfigObj
ImportError: No module named configobj
>Exit code: 0
Siehst du, ich habe dich gebeten, ``import configobj`` im Interaktiven Interpreter einzutippen. Dort hätte es wohl funktioniert...
Ich tippe drauf, dass SnakeLog_GUI irgendetwas an ``sys.path`` kaputt macht. Kannst du das Script irgendwo posten, wo man es begutachten kann?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Blauer Fasan
User
Beiträge: 49
Registriert: Montag 26. März 2007, 15:08
Kontaktdaten:

Samstag 5. Mai 2007, 19:58

Wo soll ich es denn reinstellen?

Und inwiefern, kann man mit einem Programm in sys.path etwas "kaputtmachen"?

Ich benutze im Script zum Beispiel os.environ["HOMEDRIVE"] etc.
Dummheit heißt sich in den Vordergrund zu stellen, um gesehen zu werden.
Klugheit heißt sich zurückzuhalten, um zu sehen!
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 5. Mai 2007, 20:07

Blauer Fasan hat geschrieben:Wo soll ich es denn reinstellen?
Ins LodgeIt zum Beispiel.
Blauer Fasan hat geschrieben:Und inwiefern, kann man mit einem Programm in sys.path etwas "kaputtmachen"?
Zum Beispiel so:

Code: Alles auswählen

sys.path = []
und schon ist der ``sys.path`` interpreterweit unbrauchbar und Module können nicht mehr importiert werden (bis auf einige Ausnahmen).
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Samstag 5. Mai 2007, 20:09

Leonidas meint du sollst mal einfach die Python IDLE starten und nur den import Befehl eingeben und dann schauen ob ein Fehler kommt. also nicht:
python -u SnakeLog_GUI.py

sondern:
python<ENTER>
>>> from configobj import ConfigObj
>>>

Code posten kannst du hier: http://paste.pocoo.org/

EDIT verdammt bist du schnell Leonidas. ;-)
Antworten