Seite 1 von 2
Python Modul installieren unter Linux
Verfasst: Samstag 5. Mai 2007, 10:44
von Blauer Fasan
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:
benutze, laufen nicht, weil diese Fehlermeldung kommt:
ImportError: "No module named configobj"
Ich hoffe ihr könnt mir weiterhelfen... schon mal danke im voraus

Verfasst: Samstag 5. Mai 2007, 11:10
von Sr4l
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.
Verfasst: Samstag 5. Mai 2007, 11:38
von Blauer Fasan
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...

Verfasst: Samstag 5. Mai 2007, 12:10
von Leonidas
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...

Verfasst: Samstag 5. Mai 2007, 12:48
von Sr4l
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 ^^.
Verfasst: Samstag 5. Mai 2007, 12:59
von Leonidas
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.
Verfasst: Samstag 5. Mai 2007, 13:45
von Blauer Fasan
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...

Verfasst: Samstag 5. Mai 2007, 14:21
von Leonidas
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.
Verfasst: Samstag 5. Mai 2007, 19:03
von Blauer Fasan
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...

Verfasst: Samstag 5. Mai 2007, 19:13
von Leonidas
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?
Verfasst: Samstag 5. Mai 2007, 19:21
von Blauer Fasan
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...
Verfasst: Samstag 5. Mai 2007, 19:25
von Leonidas
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?
Verfasst: Samstag 5. Mai 2007, 19:58
von Blauer Fasan
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.
Verfasst: Samstag 5. Mai 2007, 20:07
von Leonidas
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:
und schon ist der ``sys.path`` interpreterweit unbrauchbar und Module können nicht mehr importiert werden (bis auf einige Ausnahmen).
Verfasst: Samstag 5. Mai 2007, 20:09
von Sr4l
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.

Verfasst: Samstag 5. Mai 2007, 20:23
von Blauer Fasan
Also in der Python IDLE kommt dieses heraus:
Code: Alles auswählen
>>> from configobj import ConfigObj
Traceback (most recent call last):
File "<stdin>", line 1, in ?
ImportError: No module named configobj
>>> import configobj
Traceback (most recent call last):
File "<stdin>", line 1, in ?
ImportError: No module named configobj
Und kann man den Code nicht einfach hier rein posten? Oder gibt es da Probleme? Wenn ich auf den Link klicke, dann komme ich nicht auf die Seite... -.-
Verfasst: Samstag 5. Mai 2007, 20:29
von Leonidas
Blauer Fasan hat geschrieben:Also in der Python IDLE kommt dieses heraus:
Code: Alles auswählen
>>> from configobj import ConfigObj
Traceback (most recent call last):
File "<stdin>", line 1, in ?
ImportError: No module named configobj
>>> import configobj
Traceback (most recent call last):
File "<stdin>", line 1, in ?
ImportError: No module named configobj
Und das obwohl
in der selben Python-Sitzung configobj.py im ``sys.path`` gefunden wurde?
Blauer Fasan hat geschrieben:Und kann man den Code nicht einfach hier rein posten? Oder gibt es da Probleme? Wenn ich auf den Link klicke, dann komme ich nicht auf die Seite... -.-
Nein, weil der Code warscheinlich zu lang sein wird. Lodgeit müsste schon kommen, dauert nur etwas [1]. Alternativ nimmst du das Pastebin von
dpaste.com.
[1] Meine Güte, das nervt wirklich. blackbird, mach bitte endlich was dagegen (das Beta-Lodgeit einsetzen?). Sonst werden wir uns ein anderes Pastebin suchen müssen. Das würde ich aber vermeiden wollen, denn LodgeIt ist cool, wenn es doch nur richtig gehen würde. ich würde nur ungerne die dort gespeicherten Pastes verlieren.
Verfasst: Samstag 5. Mai 2007, 20:35
von Blauer Fasan
Nein, ich habe eine Konsole aufgerufen und dort einfach python eingegeben und dort die Tests durchgeführt.
Das Programm beträgt 230 Zeilen.
Verfasst: Samstag 5. Mai 2007, 20:38
von Leonidas
Blauer Fasan hat geschrieben:Das Programm beträgt 230 Zeilen.
Ja und warum pastest du es nun nicht auf dpaste?
Verfasst: Samstag 5. Mai 2007, 21:11
von Blauer Fasan
Ich habe es dort jetzt hochgestellt. Braucht ihr jetzt den Link dazu, oder nochwas?
http://dpaste.com/hold/9695/
Bitte nicht auf Kommentare achten, stammen teilweise noch von anderem Programm, aus dem ich das jetztige editiert habe...