Ich habe Python 3.9 erstellt und installiert, um Python 3 auf Raspberry Pi Zero W zu aktualisieren. Als ich dann die Liste der installierten Pakete mit "pip list" überprüfte, stieß ich auf das Symptom, dass es gestoppt wurde, ohne eine Liste oder einen Fehler anzuzeigen. Nimmt es Zeit, weil es Null ist? Ich habe es für ein paar Stunden verlassen, aber es hat sich nicht geändert. Ich konnte die Antwort im Internet nicht finden, daher hier die Lösung.
Am Ende befindet sich ein zusätzlicher Hinweis. Die Hauptursache für dieses Symptom war, dass die Zufallszahl des Zufallszahlengenerators erschöpft war, indem ein Backup des Systems erstellt und nach dem Duplizieren oder Ändern des Hostnamens mit der SD-Karte gestartet wurde.
Wenn ich die Liste der installierten Pakete mit "pip list" überprüfe, wird nichts angezeigt. Wenn Sie mit ^ C aufhören, werden die Debug-Informationen schlampig ausgegeben, und Sie können sehen, dass sie durch die Aufnahme von "self._config = {'authkey': AuthenticationString (os.urandom (32)) ..." beendet wurden.
Starten Sie den interaktiven Modus mit "python3", geben Sie Folgendes ein. Wenn ein Fehler zurückgegeben wird, handelt es sich um dasselbe Symptom. (Ich habe vergessen, den Fehler aufzuzeichnen. Es war wie "Ressource vorübergehend nicht verfügbar")
>>> import os
>>> os.getrandom(1, flags=os.GRND_NONBLOCK)
b'\xf9'(Wenn dies in Ordnung ist. Wenn es ein Problem gibt, wird hier eine Fehlermeldung angezeigt.)
sudo mv /dev/random /dev/random.orig
sudo ln -s /dev/urandom /dev/random
Diese Gegenmaßnahmenmethode, die nichts mit Python oder Pip zu tun hat, war hilfreich. https://codz.me/2017/06/10/can-not-read-from-dev-random/
Unmittelbar vor der Installation von Python 3.9 habe ich die Boot-SD-Karte gesichert, mit der duplizierten SD-Karte gebootet und den Hostnamen geändert. Anscheinend waren die Pseudozufallszahlen dabei erschöpft (oder initialisiert). Daher wurden beim Blockieren von Zufallswiederholungen Wiederholungen wiederholt, bis Zufallszahlen akkumuliert wurden. Die obige Gegenmaßnahme war eine Operation, um die Verwendung eines nicht gesperrten Zufallszahlengenerators zu erzwingen. Als Nebeneffekt können voreingenommene Zufallszahlen verwendet werden. Wenn es eine Weile betrieben wurde und genügend Zufallszahlen akkumuliert wurden, scheint es besser zu sein, zum ursprünglichen blockierenden Zufallszahlengenerator zurückzukehren. Referenz: https://ja.wikipedia.org/wiki//dev/random
Recommended Posts