6 Domanda: Errore durante l'installazione di uwsgi in virtualenv

domanda creata a Thu, Jan 18, 2018 12:00 AM

Sto cercando di installare uswgi in un ambiente virutale su linux ubuntu, python 3.5.2 Io faccio

 
pip install uwsgi

Ho ricevuto questo errore

 
Failed building wheel for uwsgi

e alla fine dei log di installazione

 
    *** uWSGI compiling embedded plugins ***
[thread 0][x86_64-linux-gnu-gcc -pthread] plugins/python/python_plugin.o
[thread 1][x86_64-linux-gnu-gcc -pthread] plugins/python/pyutils.o
In file included from plugins/python/python_plugin.c:1:0:
plugins/python/uwsgi_python.h:2:20: fatal error: Python.h: No such file or directory
compilation terminated.
In file included from plugins/python/pyutils.c:1:0:
plugins/python/uwsgi_python.h:2:20: fatal error: Python.h: No such file or directory
compilation terminated.

----------------------------------------

Command "/home/ubuntu/envflask/env/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-wthov1ur/uwsgi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-quiupta5-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/ubuntu/envflask/env/include/site/python3.5/uwsgi" failed with error code 1 in /tmp/pip-build-wthov1ur/uwsgi/
  • Linux 4.4.0-66-generic x86_64
  • Python 3.5.2

È una soluzione per questo? Grazie

    
18
6 risposte                              6                         

Devi installare i file di sviluppo Python3.5, quindi esegui questo comando:

 
apt-get install python3.5-dev

Il comando precedente installerà le intestazioni Python 3 per compilare uWSGI dal sorgente.

    
26
2017-05-18 02: 34: 12Z
  1. Funziona! Grazie!! ora ho uWSGI installato nel mio ambiente virtuale. Ma non posso eseguirlo con python 3. Corro con sudo uwsgi --http :80 --wsgi-file main.py --callable app --master --processes 8 --threads 2 e vedo questa riga Python version: 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609]
    2017-05-18 03: 21: 10Z
  2. Poiché sudo significa eseguire qualche comando come un altro utente (root per impostazione predefinita), puoi vedere questa domanda .
    2017-05-18 03: 24: 36Z
  3. ma se non corro come sudo, non posso eseguirlo usando la porta 80
    2017-05-18 03: 32: 08Z
  4. sì grazie !! necessario per spec 3.6
    2018-02-19 22: 07: 36Z
  5. @ AlvaroB, installa semplicemente la versione python corretta in virtualenv. $ virtualenv -p python3.6 .venv e poi $ . .venv/bin/activate e '$python --version' devono essere 3.6.x
    2018-07-18 12: 49: 30Z

apt-get install build-essential python3-dev

Da uWSGI documentazione :

  

uWSGI è una (grande) applicazione C, quindi hai bisogno di un compilatore C (come gcc o clang) e degli header di sviluppo Python.   Su una distribuzione basata su Debian    apt-get install build-essential python-dev sarà sufficiente.

Per Python3, basta cambiarlo in python3-dev.

$ python3 --version Python 3.5.2 $ pip3 freeze uWSGI==2.0.15

    
16
2017-05-18 02: 48: 51Z

Per chiunque abbia Python 3.6 che affronta lo stesso problema ecco il passo per risolverlo:

Ottieni gli strumenti di python 3.6 dev da questo ppa:

 
sudo add-apt-repository ppa:deadsnakes/ppa

Quindi aggiorna la lista dei pacchetti con:

 
sudo apt-get update

e quindi installa i tuoi strumenti di sviluppo con la versione 3.6

 
apt-get install build-essential python3.6-dev

Attiva il tuo ambiente virtuale con e quindi installa uwsgi:

 
pip install uwsgi
    
6
2019-01-11 18: 54: 53Z

Debian ha un pacchetto che dipende da tutti i pacchetti di sviluppo Python 3 supportati:

 
apt-get install python3-all-dev
    
4
2018-07-24 02: 34: 09Z

se hai affrontato lo stesso problema durante l'installazione di uwsgi in python3.6 solo

 
apt-get install python3.6-dev

Nel mio caso uwsgi installato tramite buildout

NOTA: potrebbe essere necessario aggiungere un ppa valido

3
2018-07-18 12: 34: 14Z

Per openSUSE (tumbleweed),

  1. Ho disattivato e cancellato la mia ven
  2. installato python3-devel tramite yast2
  3. quindi ricreato e attivato my venv
  4. e pip install uwsgi
0
2018-11-02 07: 32: 16Z
fonte collocata Qui