1
votes

Impossible d'installer uwsgi sur cygwin

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 commentaires

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


3 Réponses :


2
votes

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:

  1. cd dans le répertoire d'installation uwsgi et ouvrez uwsgiconfig.py

  2. 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]
  1. 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.

    • Ouvrir le terminal cmd Windows
    • cd vers cygwin64 (ou votre répertoire d'installation)
    • 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

      1. Dans la fenêtre du terminal Cygwin
    • cd vers le répertoire uwsgi
    • tapez et exécutez la commande 'python3 setup.py install'
    • attendez que cela se termine et faites une danse joyeuse.


2 commentaires

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?



0
votes

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]


0 commentaires

1
votes

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


0 commentaires