2015-09-15 9 views
7

compilo la xyzz.ww versione uwsgi dal sito oficial, ho compilato l'uwsgi con il comando suggerito dalla documentazione ufficialedi compilazione del plugin per Uwsgi

E poi ho compilato i plugin suggeriti per Python con i comandi la documentazione ufficiale, l'output di errore che ottengo è questo:

>[email protected]:~/tmp/uwsgi-xx.yy.zz.ww$ PYTHON=python3.4 ./uwsgi --build-plugin "plugins/python python34" 
*** uWSGI building and linking plugin from plugins/python *** 
[gcc -pthread] python34_plugin.so 
/usr/bin/ld: /usr/local/lib/python3.4/config-3.4m/libpython3.4m.a(abstract.o): relocation R_X86_64_32S against `_Py_NotImplementedStruct' can not be used when making a shared object; recompile with -fPIC 
/usr/local/lib/python3.4/config-3.4m/libpython3.4m.a: error adding symbols: Bad value 
collect2: error: ld returned 1 exit status 
*** unable to build python34 plugin *** 

l'alternativa di utilizzare uwsgi senza compilare dalla fonte sta utilizzando PIP3 installare uwsgi, in questo caso i plugin sono compilati nella cartella plugins/python /python_plugin.o ma non riesce a trovarlo. Sto usando virtualenv per il progetto, i plugin devono essere compilati sulla root o all'interno dell'ambiente virtuale nella cartella lib?

+0

Quale versione di ubuntu stai usando? Se 14.04 puoi usare direttamente 'apt-get install uwsgi-plugin-python3' e metti semplicemente la proprietà' plugin = python3' sul tuo file conf dell'applicazione. – danigosa

risposta

1

vecchia questione, ma per riferimento futuro qui è quello che avevo fatto:

/usr/bin/ld: /usr/local/lib/python3.4/config-3.4m/libpython3.4m. a (abstract.o): il riposizionamento R_X86_64_32S contro `_Py_NotImplementedStruct 'non può essere utilizzato quando si crea un oggetto condiviso; ricompilazione con -fPIC

Questa linea significa che avete bisogno di un pitone costruire con la bandiera: -fPIC, così ho disinstallato la versione pitone e ricostruire con questo flag su.

Esporta la bandiera prima di costruire in questo modo:

export CFLAGS="$CFLAGS -fPIC" 

in alternativa, se si utilizza pyenv

env PYTHON_CFLAGS=-fPIC pyenv install 3.5.x 

Ora, usando questo python, è possibile compilare un plugin python:

python uwsgiconfig.py --plugin plugins/python core python35