Probleme auf Solaris

Probleme bei der Installation?
Antworten
ScAr
User
Beiträge: 4
Registriert: Dienstag 28. August 2007, 13:26

Hallo zusammen,

ich benutze Python seit einiger Zeit unter Windows, um aus Microsoft Devstudio Dateien makefiles zu generieren. Unter Windows läuft die Version 2.4.2 und es funktioniert wunderbar.
Jetzt möchte ich diese Funktionalität auf Solaris verwenden und hab auf der Kiste auch die Version 2.5 vorgefunden.
Ich konnte mein Glück kaum fassen und dachte, das ich einfach den Sourcecode auf die UNIX Kiste kopiere und laufen lassen kann. Leider war dem nicht so und ich bekomme folgenden Stacktrace:

python /var/plato/sra/pythonskripts/sln_read.py makemake ManagementServer.sln "SUN Release" "ManagementServer"
Traceback (most recent call last):
File "/var/plato/sra/pythonskripts/sln_read.py", line 160, in <module>
makedef = sln2make( sln, configname, ProjektName )
File "/var/plato/sra/pythonskripts/sln_read.py", line 60, in sln2make
import vcproj_read
File "/data/plato/sra/pythonskripts/vcproj_read.py", line 4, in <module>
from xml.dom.ext.reader import Sax2
File "/usr/local/lib/python2.5/site-packages/_xmlplus/dom/ext/reader/__init__.py", line 14, in <module>
import string, urllib2, urlparse, cStringIO, os
File "/usr/local/lib/python2.5/urllib2.py", line 88, in <module>
import hashlib
File "/usr/local/lib/python2.5/hashlib.py", line 104, in <module>
md5 = __get_builtin_constructor('md5')
File "/usr/local/lib/python2.5/hashlib.py", line 31, in __get_builtin_constructor
import _md5
ImportError: No module named _md5
Exit 1

Da die Probleme in den Python Libraries auftreten, weiß ich nicht so recht, was ich tun kann um es zu beheben.
Hat jemand eine Idee, die mir weiter helfen könnte?

Gruss
ScAr
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

ScAr hat geschrieben:import _md5
ImportError: No module named _md5
Hallo ScAr!

Willkommen im Python-Forum!

Ich kann nicht viel dazu beitragen, aber eigentlich sollte ``_md5`` in den "Buitlins" enthalten sein. So wie bei mir unter Windows.

Code: Alles auswählen

import sys
>>> sys.builtin_module_names
('__builtin__', '__main__', '_ast', '_bisect', '_codecs', 
'_codecs_cn', '_codecs_hk', '_codecs_iso2022', '_codecs_jp', 
'_codecs_kr', '_codecs_tw', '_csv', '_functools', '_heapq', 
'_hotshot', '_locale', '_lsprof', '_md5', '_multibytecodec', 
'_random', '_sha', '_sha256', '_sha512', '_sre', '_struct', 
'_subprocess', '_symtable', '_types', '_weakref', '_winreg', 
'array', 'audioop', 'binascii', 'cPickle', 'cStringIO', 'cmath', 
'collections', 'datetime', 'errno', 'exceptions', 'gc', 'imageop', 
'imp', 'itertools', 'marshal', 'math', 'mmap', 'msvcrt', 'nt', 
'operator', 'parser', 'rgbimg', 'signal', 'strop', 'sys', 'thread', 'time', 
'xxsubtype', 'zipimport', 'zlib')
>>> 
Wenn es da nicht mit drinnen ist, dann könnte es evt. damit zu tun haben, wie und mit welchen Einstellungen Python installiert bzw. kompiliert wurde. (wobei mir jetzt aber keine Config-Einstellung einfällt, die darauf Einfluss haben könnte) Ich weiß jetzt nicht, ob das bei jeder Solaris-Maschine so ist, dass MD5 nicht einkompiliert wird, oder ob es nur bei deiner Maschine so der Fall ist. Ich weiß auch nicht, welchen Grund es geben könnte, dass MD5 nicht mit einkompiliert wurde...

Das soll nur ein Denkanstoß sein. Vielleicht weiß jemand mehr darüber.

EDIT:

Was mir noch aufgefallen ist: hashlib gibt es ja erst seit Python 2.5. Wie kann dein Programm dann unter Windows mit Python 2.4 laufen?

Versuche doch mal das Modul "md5" statt "hashlib" zu verwenden...

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
ScAr
User
Beiträge: 4
Registriert: Dienstag 28. August 2007, 13:26

Danke gerold für die schnelle Antwort. Wenn ich das auf unserer Solariskiste eingebe kommt folgendes heraus:

Code: Alles auswählen

>>> sys.builtin_module_names
('__builtin__', '__main__', '_ast', '_codecs', '_sre', '_symtable', '_types', 'errno', 'exceptions', 'gc', 'imp', 'marshal', 'posix', 'pwd', 'signal', 'sys', 'thread', 'xxsubtype', 'zipimport')
Es ist also kein md5 dabei. Aber wie komme ich da jetzt ran? Kann ich die aktuelle Version einfach darüber installieren? Oder kann ich die fehlenden Module nachrüsten?
Was ist die beste Vorgehensweise?

Gruß
ScAr
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

ScAr hat geschrieben:Es ist also kein md5 dabei.
Fehlalarm!

Ich habe eben auf meiner Ubuntu-Schüssel nachgesehen. Unter Linux (Python 2.5) ist "_md5" ebenfalls nicht in den Builtins. :K
Es hängt also nicht damit zusammen.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo!

Was auch immer das bedeutet und wie auch immer man etwas dagegen tun kann??? Keine Ahnung. Aber hier habe ich zumindest schon mal einen Hinweis auf das Problem gefunden (glaube ich):

http://svn.netlabs.org/libc/browser/ven ... =3225#L237

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
ScAr
User
Beiträge: 4
Registriert: Dienstag 28. August 2007, 13:26

Hallo,

es läuft jetzt! Das Problem war, das wohl noch eine Erweiterung 'pyXML' installiert werden musste, damit der vorhandene Code läuft.
Wie kann man eigentlich in einer bestehenden Installation herausfinden, ob und wenn ja welche Erweiterungen installiert sind?

Gruß
ScAr
BlackJack

Du kannst Dich in den Pfaden umschauen die in `sys.path` aufgeführt sind. Insbesondere in Pfaden die `*/site-packages/*` enthalten z.B. `/usr/lib/python2.5/site-packages/`, dort werden normalerweise zusätzliche Module und Pakete installiert.
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

gerold hat geschrieben:Hallo!

Was auch immer das bedeutet und wie auch immer man etwas dagegen tun kann??? Keine Ahnung. Aber hier habe ich zumindest schon mal einen Hinweis auf das Problem gefunden (glaube ich):
_md5 ist ein Ersatzmodul, das dann gebaut werden soll, wenn Pythons setup.py, während es die Erweiterungsmodule baut, kein OpenSSL finden kann, ansonsten nimmt hashlib nämlich dessen Implementierungen der Hashfunktionen.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
ScAr
User
Beiträge: 4
Registriert: Dienstag 28. August 2007, 13:26

BlackJack hat geschrieben:Du kannst Dich in den Pfaden umschauen die in `sys.path` aufgeführt sind. Insbesondere in Pfaden die `*/site-packages/*` enthalten z.B. `/usr/lib/python2.5/site-packages/`, dort werden normalerweise zusätzliche Module und Pakete installiert.
d.h. es gibt in python kein Kommando, das alle zusätzlich installierten Packages namentlich auflistet!? Wäre doch schön, oder? :wink:

Ansonsten vielen Dank für die Hilfe, es läuft jetzt auch alles, was ich brauche unter SUN. :lol:

Gruß
ScAr
BlackJack

Du könntest `pydoc` als Webserver starten:

Code: Alles auswählen

bj@s8n:~$ pydoc -p 10000
pydoc server ready at http://localhost:10000/
Und dann mal die URL in den Browser eingeben.
Antworten