[PYTHON] La liste des pip ne se termine jamais.

introduction

J'ai construit et installé Python 3.9 dans le but de mettre à jour Python 3 sur Raspberry Pi Zero W. Ensuite, lors de la vérification de la liste des paquets installés avec pip list, j'ai rencontré un symptôme selon lequel il s'est arrêté sans afficher une liste ou une erreur. Cela prend-il du temps parce que c'est zéro? Je l'ai laissé quelques heures, mais ça n'a pas changé. Je n'ai pas trouvé de réponse sur Internet, alors voici la solution.

Il y a une note supplémentaire à la fin. La cause première de ce symptôme était que le nombre aléatoire du générateur de nombres aléatoires était épuisé en effectuant une sauvegarde du système et en le démarrant avec la carte SD après la duplication ou en changeant le nom d'hôte.

Symptômes

Lorsque je vérifie la liste des paquets installés avec pip list, rien ne s'affiche. Si vous arrêtez avec ^ C, les informations de débogage sortiront de manière bâclée, et vous pouvez voir que Terminé autour de l'inclusion de self._config = {'authkey': AuthenticationString (os.urandom (32)) ....

Confirmation

Démarrez le mode interactif avec python3, entrez ce qui suit, et si une erreur est renvoyée, c'est le même symptôme. (J'ai oublié d'enregistrer l'erreur. C'était comme `` Ressource temporairement indisponible '')

>>> import os
>>> os.getrandom(1, flags=os.GRND_NONBLOCK)
b'\xf9'(Si cela vous convient. S'il y a un problème, vous obtiendrez une erreur ici)

Contre-mesures

sudo mv /dev/random /dev/random.orig
sudo ln -s /dev/urandom /dev/random

Cette méthode de contre-mesure, qui n'a rien à voir avec python ou pip, a été utile. https://codz.me/2017/06/10/can-not-read-from-dev-random/

Post-scriptum: Pourquoi est-ce arrivé? La mesure est-elle appropriée?

Immédiatement avant d'installer Python 3.9, j'ai sauvegardé la carte SD de démarrage, démarré avec la carte SD dupliquée et changé le nom d'hôte. Apparemment, les nombres pseudo-aléatoires ont été épuisés (ou initialisés) dans le processus. Par conséquent, avec le blocage aléatoire, les tentatives ont été répétées jusqu'à ce que des nombres aléatoires soient accumulés. La contre-mesure ci-dessus était une opération pour forcer l'utilisation d'un générateur de nombres aléatoires déverrouillé. Comme effet secondaire, des nombres aléatoires biaisés peuvent être utilisés. S'il a fonctionné pendant un certain temps et que suffisamment de nombres aléatoires ont été accumulés, il semble qu'il sera préférable de revenir au générateur de nombres aléatoires bloquant d'origine. Référence: https://ja.wikipedia.org/wiki//dev/random

Recommended Posts

La liste des pip ne se termine jamais.
Installez la commande pip
Extraire la liste des services dans Azure
Pip installe le référentiel GitHub
Méthodes disponibles dans la liste
Prend en charge l'avertissement (DEPRECATION) de la liste pip
À propos de la liste de base des bases de Python
Trier la liste qui contient le dict