#概要
EC2インスタンスにuwsgiをインストールして失敗したので、
トラブルシューティング用のメモ
#背景
もともと、pythonのフレームワーク"Django"を使ってWEBアプリケーションを作っていました。
それをEC2上でnginx+wsgiで動かそうとして、インストール中にエラーが出たという感じです。
開発経験は皆無なので、なんでその仕様で動かそうとしたの?って突っ込まれたら、
(特に理由は)ないです
って答えちゃうと思うのですが、コメントいただければ参考にします。
#環境
##EC2インスタンスのスペック
- OS:Red Hat 7.3
- インスタンスタイプ:t2.micro
#手順
というわけでEC2インスタンスにインストール
pip install uwsgi
しようとしたら、こんなエラーが出てきてしまった。
Traceback (most recent call last):
File "", line 1, in
File "/tmp/pip-build-pV1pAc/uwsgi/setup.py", line 124, in
distclass=uWSGIDistribution,
File "/usr/lib64/python2.7/distutils/core.py", line 152, in setup
dist.run_commands()
File "/usr/lib64/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/usr/lib64/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/usr/lib/python2.7/site-packages/wheel/bdist_wheel.py", line 215, in run
self.run_command('install')
File "/usr/lib64/python2.7/distutils/cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "/usr/lib64/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/tmp/pip-build-pV1pAc/uwsgi/setup.py", line 77, in run
conf = uc.uConf(get_profile())
File "uwsgiconfig.py", line 742, in init
raise Exception("you need a C compiler to build uWSGI")
Exception: you need a C compiler to build uWSGI
Failed building wheel for uwsgi
C compilerが必要だぞ!って怒られちゃいました。
じゃあC compilerが使えるようにしよう。
そしてググってみた。
結果、そういえばDevelopment Toolをインストールしていなかったので、
インストールしてみよう。
sudo yum groupinstall "Development Tools"
これでインストールできた。
というわけで再度インストール。
In file included from plugins/python/python_plugin.c:1:0:
plugins/python/uwsgi_python.h:2:20: 致命的エラー: Python.h: そのようなファイルやディレクトリはありません
#include <Python.h>
コンパイルを停止しました。
うわぁ。。。マジか。。。
ファイルがないと怒られてしまったので、再度ググりました。
参考記事:http://zashikiro.hateblo.jp/entry/2012/10/02/130031
というわけで、python2.7-devというパッケージをインストール。
sudo yum install python-devel
これでPython.hが参照できるようになるはず。
再度挑戦してみよう。
すると。。。
Collecting uwsgi
Using cached uwsgi-2.0.14.tar.gz
Building wheels for collected packages: uwsgi
Running setup.py bdist_wheel for uwsgi ... done
Stored in directory: /root/.cache/pip/wheels/c4/ad/56/f70a70b63fa4b0f2c0518db6f41381c9d33cd5cc5ac9a9494b
Successfully built uwsgi
Installing collected packages: uwsgi
Successfully installed uwsgi-2.0.14
インストールできた!やったね!
というわけで今度はデプロイするところまでやってみようかな〜