我正在尝试在Linux ubuntu,python 3.5.2上的虚拟环境中安装uswgi 我做了
pip install uwsgi
我收到了这个错误
Failed building wheel for uwsgi
并在安装日志结束时
*** uWSGI compiling embedded plugins ***
[thread 0][x86_64-linux-gnu-gcc -pthread] plugins/python/python_plugin.o
[thread 1][x86_64-linux-gnu-gcc -pthread] plugins/python/pyutils.o
In file included from plugins/python/python_plugin.c:1:0:
plugins/python/uwsgi_python.h:2:20: fatal error: Python.h: No such file or directory
compilation terminated.
In file included from plugins/python/pyutils.c:1:0:
plugins/python/uwsgi_python.h:2:20: fatal error: Python.h: No such file or directory
compilation terminated.
----------------------------------------
Command "/home/ubuntu/envflask/env/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-wthov1ur/uwsgi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-quiupta5-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/ubuntu/envflask/env/include/site/python3.5/uwsgi" failed with error code 1 in /tmp/pip-build-wthov1ur/uwsgi/
这是解决方案吗?感谢
答案 0 :(得分:23)
您需要安装Python3.5开发文件,因此请运行以下命令:
apt-get install python3.5-dev
上面的命令将安装Python 3标头以从源代码构建uWSGI。
答案 1 :(得分:15)
apt-get install build-essential python3-dev
来自uWSGI documentation:
uWSGI是一个(大)C应用程序,因此您需要一个C编译器(如gcc或clang)和Python开发头文件。
在基于Debian的发行版上
apt-get install build-essential python-dev
就足够了。
对于Python3,只需将其更改为python3-dev
。
$ python3 --version
Python 3.5.2
$ pip3 freeze
uWSGI==2.0.15
答案 2 :(得分:4)
Debian的软件包取决于所有受支持的Python 3开发软件包:
apt-get install python3-all-dev
答案 3 :(得分:4)
对于任何使用python 3.6面临相同问题的人,这里是解决它的步骤:
从此ppa获取python 3.6开发工具:
sudo add-apt-repository ppa:deadsnakes/ppa
然后使用:
更新您的包裹清单sudo apt-get update
然后安装3.6版本的开发工具
apt-get install build-essential python3.6-dev
使用激活您的虚拟环境,然后安装uwsgi:
pip install uwsgi
答案 4 :(得分:3)
如果在python3.6下安装uwsgi时遇到相同的问题 只是
apt-get install python3.6-dev
在我的情况下,uwsgi是通过buildout安装的
注意:也许您应该添加有效的ppa
答案 5 :(得分:2)
我也遇到过同样的问题。我可以通过以下方法解决它:
sudo apt install libpython3.7-dev
如果您的python版本是3.6,请使用3.6而不是3.7。 之后,使用pip安装uwsgi:
sudo pip install uwsgi
答案 6 :(得分:1)
您必须安装 python3-devel
软件包:
$ sudo dnf install python3-devel -y
然后安装uwsgi
模块:
$ pip install uwsgi
答案 7 :(得分:0)
对于openSUSE(风滚草),
pip install uwsgi
答案 8 :(得分:0)
如果要安装uwsgi命令,请通过
curl http://uwsgi.it/install | bash -s default /tmp/uwsgi
将mv / tmp / uwsgi更改为/ usr / local
答案 9 :(得分:0)
或者,您可以使用conda
安装uwsgi
,但请确保使用conda-forge
频道:
conda install -c conda-forge uwsgi
答案 10 :(得分:0)
在安装uwsgi时我遇到了类似的问题
ibpython3.7m.a’ generated with LTO version 6.0 instead of the expected 8.1.
默认的Python是3.7,我必须使用pip3.8来解决此问题。 但是我还有另一个问题。正在运行
sudo uwsgi --socket 0.0.0.0:5000 --protocol=http -w wsgi:app
产生以下错误:
uwsgi: invalid option -- 'w'
getopt_long() error
我尝试了很多事情,包括modular installation 主要问题是默认的uwsgi文件夹是/ usr / bin / uwsgi,但是当我使用pip3.8安装时,它没有设置为默认值。我无法解决此问题,因此切换到fastapi and uvicorn。 我仍然很想找到解决问题的方法。