Modul sha256 fehlt unter Ubuntu 12.04

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.
Kegelkugel
User
Beiträge: 32
Registriert: Samstag 8. Januar 2011, 13:37
Wohnort: München
Kontaktdaten:

Hallo,

als ich gestern die Python-Library pyPdf installiert habe (Download von Website & Installation) und pyPdf importieren wollte, kam folgende Fehlermeldung:

Code: Alles auswählen

ImportError: No module named _sha256
Ich habe vor ein paar Tage von Ubuntu 11.10 auf 12.04 geupgradet, davor hat es funktioniert. Wahrscheinlich lag es am Upgrade.
Kann ich dieses Modul "sha256" irgendwie nachinstallieren oder einrichten? Meine Recherche hat leider nichts gebracht.
Vielen Dank für eine Antwort!

Grüße,
Markus
Zuletzt geändert von Kegelkugel am Samstag 5. Mai 2012, 10:14, insgesamt 1-mal geändert.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Ich rate, das gehört zu pyOpenSSL.

Stefan
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Unter Opensuse gehört das Modul zum Python-Grundpaket. _sha256 wird von hashlib verwendet. Vllt. ist das unter Ubuntu nicht Teil der Python-Grundinstallation?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

jerch hat geschrieben:Vllt. ist das unter Ubuntu nicht Teil der Python-Grundinstallation?
Die _sha256.so ist gar nicht mehr Teil von Ubuntu 12.04. Warum auch immer, vielleicht weil sie mit einer anderen zusammengelegt wurde.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Kegelkugel
User
Beiträge: 32
Registriert: Samstag 8. Januar 2011, 13:37
Wohnort: München
Kontaktdaten:

Ok, schonmal Danke für die Antworten! :-)
Hat jemand eine Idee, wie ich es jetzt einrichten kann? Kann ich irgendwo eine "Verknüpfung" zum Ersatz-Paket erstellen?
BlackJack

@Kegelkugel: Kannst Du ``import hashlib`` ausführen?
Kegelkugel
User
Beiträge: 32
Registriert: Samstag 8. Januar 2011, 13:37
Wohnort: München
Kontaktdaten:

Nein, gleiche Fehlermeldung(_sha256 fehlt).
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

Xubuntu 12.04:

Code: Alles auswählen

>>> import hashlib
>>> import _sha256
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named _sha256
>>> hashlib.sha256('Hello world!').hexdigest()
'c0535e4be2b79ffd93291305436bf889314e4a3faec05ecffcbb7df31ad9e51a'
>>> 
BlackJack

@Kegelkugel: Kannst Du `_hashlib` importieren (man beachte den führenden Unterstrich) und falls ja, was ist da enthalten (`dir()`-Funktion)?
Kegelkugel
User
Beiträge: 32
Registriert: Samstag 8. Januar 2011, 13:37
Wohnort: München
Kontaktdaten:

Jetzt bin ich verwirrt:

Code: Alles auswählen

>>> import hashlib
ERROR:root:code for hash sha224 was not found.
Traceback (most recent call last):
  File "hashlib.py", line 139, in <module>
  File "hashlib.py", line 91, in __get_builtin_constructor
    try:
ValueError: unsupported hash type sha224
ERROR:root:code for hash sha256 was not found.
Traceback (most recent call last):
  File "hashlib.py", line 139, in <module>
  File "hashlib.py", line 91, in __get_builtin_constructor
    try:
ValueError: unsupported hash type sha256
ERROR:root:code for hash sha384 was not found.
Traceback (most recent call last):
  File "hashlib.py", line 139, in <module>
  File "hashlib.py", line 91, in __get_builtin_constructor
    try:
ValueError: unsupported hash type sha384
ERROR:root:code for hash sha512 was not found.
Traceback (most recent call last):
  File "hashlib.py", line 139, in <module>
  File "hashlib.py", line 91, in __get_builtin_constructor
    try:
ValueError: unsupported hash type sha512
>>> import hashlib
>>> import _sha256
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named _sha256
>>> 
Nur beim ersten Versuch, hashlib zu importieren kommt eine Fehlermeldung. Das Gleiche gilt auch für pyPdf. Wenn man es zweimal importieren will klappt's.

_hashlib lässt sich nicht importieren (ImportError: No module named _hashlib)
Der Code von nomnom funktioniert leider auch nicht (AttributeError: 'module' object has no attribute 'sha256')

Meine aktuelle Aufgabe an pyPdf, ein PDF-Dokument zu drehen, funktioniert auch ohne hashlib, also wenn ich die Import-Anweisung auskommentiere.
BlackJack

@Kegelkugel: `pyPdf` importiert indirekt über das `md5`-Modul `hashlib`. Und das scheint bei Dir die `sha*`-Funktionen nicht zu finden, warum auch immer. Eigentlich sollte es das `_hashlib`-Modul geben was gegen die OpenSSL-SHA-Implementierungen gelinkt ist. So ist das jedenfalls früher immer gewesen. Falls es das nicht gibt werden die Implementierungen in eigenen Bibliotheken `_sha256.so` & Co gesucht. Die es bei Dir aber anscheinend auch nicht gibt.

Hat ein Leser hier vielleicht ein Ubuntu 12.04 installiert und kann verraten wie sich ``import hashlib`` bei ihm verhält?
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ist bei dir `python-crypto` installiert? Falls nein: Besteht der Fehler immer noch, nachdem du das Paket installiert hast?
BlackJack

Falls das hilft, ist es aber trotzdem eigenartig, denn `hashlib` gehört zu Standardbibliothek. Das sollte man ohne zusätzliche Drittmodule und ohne Ausnahmen importieren können.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

So wie TKinter? ;)
BlackJack

Ja so wie Tkinter, grrr. :evil: In früheren Versionen ist `_hashlib` sogar ein Modul was fest in den Interpreter einkompiliert ist:

Code: Alles auswählen

In [772]: sys.version
Out[772]: '2.6.5 (r265:79063, Apr 16 2010, 13:09:56) \n[GCC 4.4.3]'

In [773]: '_hashlib' in sys.builtin_module_names
Out[773]: True
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

BlackJack hat geschrieben:Hat ein Leser hier vielleicht ein Ubuntu 12.04 installiert und kann verraten wie sich ``import hashlib`` bei ihm verhält?
Hab ich doch oben schon gezeigt. Und _hashlib kann ich auch importieren.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Kann sein, dass der Threadstarter sich irgendwie sein eigenes Python gebastelt hat?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Kegelkugel
User
Beiträge: 32
Registriert: Samstag 8. Januar 2011, 13:37
Wohnort: München
Kontaktdaten:

@Leonidas: Wie meinst du das? Eigentlich nicht, so weit ich weiß. Ich "müsste" das normale Python haben... :-/

@Snafu: Ja, python-crypto ist bereits installiert.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Kegelkugel hat geschrieben:@Leonidas: Wie meinst du das? Eigentlich nicht, so weit ich weiß. Ich "müsste" das normale Python haben... :-/
Dann re-installier mal die Pakete ``python2.7`` und ``python2.7-minimal``. Irgendwie wirkt deine Installation kaputt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Kegelkugel
User
Beiträge: 32
Registriert: Samstag 8. Januar 2011, 13:37
Wohnort: München
Kontaktdaten:

Ich denke es wäre ein Fehler, diese Pakete zu entfernen, auch wenn man sie danach wieder installiert:

Code: Alles auswählen

$ sudo apt-get remove python2.7 python2.7-minimal 
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut       
Statusinformationen werden eingelesen... Fertig
Die folgenden Pakete werden ENTFERNT:
  [... ziemlich lange Liste]
WARNUNG: Die folgenden essentiellen Pakete werden entfernt.
Dies sollte NICHT geschehen, außer Sie wissen genau, was Sie tun!
  python-minimal python2.7-minimal (wegen python-minimal)
0 aktualisiert, 0 neu installiert, 262 zu entfernen und 0 nicht aktualisiert.
Nach dieser Operation werden 277 MB Plattenplatz freigegeben.
Sie sind im Begriff, etwas potentiell Schädliches zu tun.
Zum Fortfahren geben Sie bitte »Ja, tue was ich sage!« ein.
Oder gibt es einen apt Befehl zum direkten re-installieren?

Bemerkung:
Wie bei nomnom lässt sich bei mir hashlib importieren (beim 2. Versuch), _hashlib und _sha256 allerdings nicht! Anders als bei nomnom funktioniert hashlib.sha256 nicht.
Antworten