LoginSignup
14
6

More than 5 years have passed since last update.

uwsgiをEC2インスタンスにインストールしようとして失敗した話

Posted at

概要

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

インストールできた!やったね!

というわけで今度はデプロイするところまでやってみようかな〜

14
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
6