2015-09-15 29 views
7

skompilować xyzz.ww wersji uwsgi z oficial miejscu, i sporządziła uwsgi z poleceniem zasugerował z oficjalnej dokumentacjiSkompiluj wtyczek dla Uwsgi

A potem kompilowane wtyczki sugerowane dla Pythona z poleceń oficjalna dokumentacja, wyjście błędu otrzymuję to:

>[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 *** 

alternatywą korzystania uwsgi bez kompilowania go od źródła korzysta pip3 zainstalować uwsgi, w tym przypadku wtyczek są kompilowane w folderze plugins/python /python_plugin.o, ale nie można go znaleźć. Używam virtualenv dla projektu, kompilacja wtyczek musi znajdować się w katalogu głównym lub w środowisku virtualenv w folderze lib?

+0

Którą wersję Ubuntu używasz? Jeśli 14.04 możesz użyć bezpośrednio 'apt-get install uwsgi-plugin-python3' i po prostu wstaw jako właściwość' plugin = python3'on do pliku conf twojej aplikacji. – danigosa

Odpowiedz

1

Stare pytanie, ale na przyszłość jest tutaj to, co zrobiłem:

/usr/bin/ld: /usr/local/lib/python3.4/config-3.4m/libpython3.4m. a (abstract.o): relokacja R_X86_64_32S przeciwko `_Py_NotImplementedStruct 'nie może być używana podczas tworzenia obiektu współdzielonego; Przekompiluj z -fPIC

Linia ta zakłada, że ​​trzeba zbudować Pythona z flagą: -fPIC, więc odinstalować wersję Pythona i odbudować z tej flagi na.

Export flagi przed budować tak:

export CFLAGS="$CFLAGS -fPIC" 

alternatywnie jeśli używasz pyenv

env PYTHON_CFLAGS=-fPIC pyenv install 3.5.x 

Teraz za pomocą tego pytona, można skompilować plugin Pythona:

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