Amazon Linux EC2 实例上的 uWSGI 安装异常

Posted

技术标签:

【中文标题】Amazon Linux EC2 实例上的 uWSGI 安装异常【英文标题】:uWSGI installation exception on Amazon Linux EC2 instance 【发布时间】:2014-11-21 21:28:37 【问题描述】:

我是一个新手,正在尝试使用 nginx、django、uWSGI 和 mysql 在 Amazon EC2 上为我的第一个电话应用程序设置服务器。

我正在关注那些教程(实际上第二个是基于第一个):

http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html http://www.oliverelliott.org/article/computing/tut_setup_nginx_django/

我使用的是 MacbookPro,在终端中我通过 ssh 连接到 Amazon Linux EC2 实例。 当涉及到安装 uwsgi.. 麻烦出现了。 我执行了:

$ sudo yum install python-pip
$ sudo yum install python-devel
$ sudo pip install uwsgi

前两个工作正常,最后一个命令抛出异常:

    Downloading/unpacking uwsgi
  Running setup.py egg_info for package uwsgi
Installing collected packages: uwsgi
  Running setup.py install for uwsgi
    using profile: buildconf/default.ini
    detected include path: ['/usr/include', '/usr/local/include']
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-root/uwsgi/setup.py", line 109, in <module>
        distclass=uWSGIDistribution,
      File "/usr/lib64/python2.6/distutils/core.py", line 152, in setup
        dist.run_commands()
      File "/usr/lib64/python2.6/distutils/dist.py", line 975, in run_commands
        self.run_command(cmd)
      File "/usr/lib64/python2.6/distutils/dist.py", line 995, in run_command
        cmd_obj.run()
      File "/tmp/pip-build-root/uwsgi/setup.py", line 71, in run
        conf = uc.uConf(get_profile())
      File "uwsgiconfig.py", line 687, in __init__
        raise Exception("you need a C compiler to build uWSGI")
    Exception: you need a C compiler to build uWSGI
    Complete output from command /usr/bin/python26 -c "import setuptools;__file__='/tmp/pip-build-root/uwsgi/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-l8npX4-record/install-record.txt --single-version-externally-managed:
    running install

using profile: buildconf/default.ini

detected include path: ['/usr/include', '/usr/local/include']

Traceback (most recent call last):

  File "<string>", line 1, in <module>

  File "/tmp/pip-build-root/uwsgi/setup.py", line 109, in <module>

    distclass=uWSGIDistribution,

  File "/usr/lib64/python2.6/distutils/core.py", line 152, in setup

    dist.run_commands()

  File "/usr/lib64/python2.6/distutils/dist.py", line 975, in run_commands

    self.run_command(cmd)

  File "/usr/lib64/python2.6/distutils/dist.py", line 995, in run_command

    cmd_obj.run()

  File "/tmp/pip-build-root/uwsgi/setup.py", line 71, in run

    conf = uc.uConf(get_profile())

  File "uwsgiconfig.py", line 687, in __init__

    raise Exception("you need a C compiler to build uWSGI")

Exception: you need a C compiler to build uWSGI

----------------------------------------
Command /usr/bin/python26 -c "import setuptools;__file__='/tmp/pip-build-root/uwsgi/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-l8npX4-record/install-record.txt --single-version-externally-managed failed with error code 1 in /tmp/pip-build-root/uwsgi
Storing complete log in /root/.pip/pip.log

我尝试了我阅读的两个建议,但似乎对我不起作用:

$ export CC=gcc && pip install -r requirements.txt 

$ sudo CC=gcc pip install uwsgi

有什么建议吗?提前非常感谢!

【问题讨论】:

你安装了像 gcc 或 clang 这样的 c 编译器吗? 就是这样......它在做之后工作:sudo yum install gcc。非常感谢罗伯托! :) 【参考方案1】:

这个链接帮助了我:uWSGI: Installing from a distribution package

我做到了:

yum groupinstall "Development Tools"
yum install python-devel

然后:

pip install uwsgi

然后它就可以工作了。

【讨论】:

以上是关于Amazon Linux EC2 实例上的 uWSGI 安装异常的主要内容,如果未能解决你的问题,请参考以下文章

Amazon ec2 linux实例mysql未连接

为EC2 Amazon Linux实例设置SFTP Sublime Text 3

在启动 Amazon EC2 Linux 实例时自动挂载 EBS 卷

Amazon 实例 Ec2 连接超时

最佳实践:单个 Amazon EC2 实例上的多个 django 应用程序

AWS Amazon Linux EC2 实例:apache 用户权限被拒绝写入目录