Mon système d'exploitation principal est Windows 10 mais j'utilise cygwin comme terminal. Lors de l'installation d'uwsgi via la commande pip3 install uwsgi
, il échoue avec un message d'erreur "AttributeError: le module 'os' n'a pas d'attribut 'uname'"
3 Réponses :
uWSGI a besoin d'un compilateur c pour se construire et os.uname pour utiliser platform.uname doit être mis à jour dans le fichier uwsgiconfig.py.
Voici comment réparer Windows 10:
cd dans le répertoire d'installation uwsgi et ouvrez uwsgiconfig.py
remplacez os.uname par platform.uname pour les lignes de code suivantes:
uwsgi_os = os.uname () [0] uwsgi_os_k = re.split ('[- + _]', os.uname () [2]) [0] uwsgi_os_v = os.uname () [3] uwsgi_cpu = os.uname[)[4[4
à ceci:
uwsgi_os = **platform.uname**()[0] uwsgi_os_k = re.split('[-+_]', **platform.uname**()[2])[0] uwsgi_os_v = **platform.uname**()[3] uwsgi_cpu = **platform.uname**()[4]
Installez les packages suivants avec cygwin pour vous assurer que python3 et gcc sont disponibles pour le terminal cygwin et pas seulement python installé sur Windows. Il s'agit d'une installation python distincte de celle de Windows lui-même.
exécutez cette commande: setup-x86_64.exe -q -P wget -P gcc-g ++ -P gcc-core -P gcc-g ++ -P libcrypt-devel -P libintl-devel -P python3 -P python3-devel
li >Cette commande devrait installer les packages suivants pour Cygwin64: gcc-core gcc-g ++ libcrypt-devel libintl-devel python3 python3-devel
Merci pour l'explication. J'obtiens l'erreur ci-dessous. core / event.c: dans la fonction ‘event_queue_read’: core / event.c: 1416: 9: erreur: ‘UWSGI_EVENT_IN’ non déclaré (première utilisation dans cette fonction); vouliez-vous dire "UWSGI_VERSION"? return UWSGI_EVENT_IN;
@Gopi l'avez-vous résolu?
Le code doit être légèrement modifié en:
import platform uwsgi_os = platform.uname()[0] uwsgi_os_k = re.split('[-+_]', platform.uname()[2])[0] uwsgi_os_v = platform.uname()[3] uwsgi_cpu = platform.uname()[4]
Si vous obtenez:
core / event.c: Dans la fonction "event_queue_read": core / event.c: 1416: 9: erreur: "UWSGI_EVENT_IN" non déclarée
Vous ne démarrez probablement pas l'installation de l'installation avec cygwin python
Vous avez un os.py (ou os.pyc , ...) quelque part dans votre PYTHONPATH (éventuellement dans le répertoire courant?). Ou vous exécutez un Win ( pas Cygwin ) installé Python (que fait
python -c "import sys; print (sys.platform)"
sortie?). Ou l'installation de Python est corrompue.Cygwin n'est pas un terminal. C'est un environnement de type Unix. Pour moi, l'installation uwsgi fonctionne. Avez-vous installé le package
python3-devel
?voir ma réponse