Ubuntu18にアップデートし 、デフォルトが Python3.6 になったマシンで、Python3.5 の検証が必要になった。
python3.5 -m venv venv35
でvenv を作って
. venv35/bin/activate
pip install uwsgi
すると
/usr/bin/x86_64-linux-gnu-ld: /usr/local/lib/python3.5/config-3.5m/libpython3.5m.a(mystrtoul.o): relocation R_X86_64_32S against symbol `_Py_ctype_table' can not be used when making a PIE object。 -fPIC を付けて再コンパイルしてください。
/usr/bin/x86_64-linux-gnu-ld: /usr/local/lib/python3.5/config-3.5m/libpython3.5m.a(structmember.o): relocation R_X86_64_32S against `.rodata' can not be used when making a PIE object。 -fPIC を付け
て再コンパイルしてください。
/usr/bin/x86_64-linux-gnu-ld: /usr/local/lib/python3.5/config-3.5m/libpython3.5m.a(parser.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a PIE object。 -fPIC を付け
て再コンパイルしてください。
/usr/bin/x86_64-linux-gnu-ld: 最終リンクに失敗しました: 出力に対応するセクションがありません
collect2: error: ld returned 1 exit status
*** error linking uWSGI ***
のようにエラーが出て、リンクに失敗した。
なので、Python3.5 をビルドしなおす。
curl -O https://www.python.org/ftp/python/3.5.6/Python-3.5.6rc1.tgztar -xzvf Python-3.5.6rc1.tgz
cd Python-3.5.6rc1/
./configure --prefix=$HOME/.local --enable-optimizations
make -s -j2
make install
そして、そのpythonでvenv を作り
~/.local/bin/python3.5 -m venv venv356
. venv356/bin/activate
pip install uwsgi
インストールできる
参考
UbuntuでPythonをソースからインストール
コメント