【问题标题】:uwsgi http is ambiguousuwsgi http 不明确
【发布时间】:2016-05-29 09:36:09
【问题描述】:

我试图在 uwsgi 上运行 Django 应用程序,但得到以下错误。

uwsgi --http :8000 --home /home/cuser/.virtualenvs/vq --chdir /var/www/sid/sid -w wsgi.py

uwsgi: option '--http' is ambiguous
getopt_long() error

当我从 -http 更改为 --socket 时,它可以工作,但它又说 --home 是模棱两可的

【问题讨论】:

    标签: python django nginx uwsgi


    【解决方案1】:

    这很可能是因为您从发行版打包的二进制文件中安装了 uwsgi,这些二进制文件的构建更小,并且缺少一些插件。

    您可以通过pip install uwsgi 修复此问题,并将uwsgi 替换为path/to/uwsgi/binary/installed/using/pip。您可以使用pip show uwsgi 找到。

    [请注意:如果您使用的是python3,请使用pip3]

    另一种方法是下载相应的 http/python3 插件并运行以下命令:

    uwsgi --plugins http,python --http :8000 --home /home/cuser/.virtualenvs/vq --chdir /var/www/sid/sid -w wsgi.py
    

    【讨论】:

    • 在我的情况下(CentOS 7),我必须安装uwsgi-router-http,并添加--plugins http,python
    • 请注意,现在是--plugins python3
    【解决方案2】:

    在使用发行版提供的软件包时,您可能需要考虑一下,您的发行版很可能已经以模块化方式构建了 uWSGI(每个功能都是必须加载的不同插件)。

    你必须在命令前加上--plugin python,http,并在删除HTTP路由器时加上--plugin python

    示例 附加--plugin python

    uwsgi --http :8000 --plugin python --home /home/cuser/.virtualenvs/vq --chdir /var/www/sid/sid -w wsgi.py
    

    【讨论】:

      【解决方案3】:

      尝试:

      uwsgi --http=:8000 --home=/home/cuser/.virtualenvs/vq --chdir=/var/www/sid/sid -w wsgi.py
      

      对于某些版本的 getopt 这应该可以工作。如果没有,请尝试将您的参数放入配置文件或更新系统中的 getopt 库并重新编译 uWSGI。

      【讨论】:

        猜你喜欢
        • 2018-09-30
        • 2014-05-29
        • 2019-06-19
        • 1970-01-01
        • 2022-12-21
        • 2016-05-25
        • 1970-01-01
        • 2012-07-31
        • 2016-10-20
        相关资源
        最近更新 更多