[英]Error installing uwsgi in virtualenv
我正在嘗試在 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/
有什么解決方案嗎? 謝謝
你需要安裝 Python3.5 的開發文件,所以運行這個命令:
apt-get install python3.5-dev
上面的命令將安裝 Python 3 頭文件以從源代碼構建 uWSGI。
apt-get install build-essential python3-dev
來自 uWSGI 文檔:
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
對於面臨同樣問題的 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
Debian 有依賴於所有支持的 Python 3 開發包的包:
apt-get install python3-all-dev
我遇到了同樣的問題。 我通過以下方式解決它:
sudo apt install libpython3.7-dev
如果您的 python 版本是 3.6,則使用 3.6 而不是 3.7。 之后使用 pip 安裝 uwsgi:
sudo pip install uwsgi
如果你在 python3.6 下安裝 uwsgi 時遇到同樣的問題
apt-get install python3.6-dev
在我的情況下,通過 buildout 安裝 uwsgi
注意:您可能應該添加有效的 ppa
或者,您可以使用conda
安裝uwsgi
,但請確保使用conda-forge
通道:
conda install -c conda-forge uwsgi
您必須安裝python3-devel
包:
$ sudo dnf install python3-devel -y
然后安裝uwsgi
模塊:
$ pip install uwsgi
對於 openSUSE(風滾草),
pip install uwsgi
如果要安裝 uwsgi 命令,通過
curl http://uwsgi.it/install | bash -s default /tmp/uwsgi
mv /tmp/uwsgi 到 /usr/local 什么
我在安裝 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
我嘗試了很多東西,包括模塊化安裝主要問題是默認的 uwsgi 文件夾是 /usr/bin/uwsgi 但是當我使用 pip3.8 安裝時它沒有設置為默認值。 我無法解決這個問題,我切換到fastapi 和 uvicorn 。 我仍然有興趣找到解決我的問題的方法。
我被困在這個上,試圖在 Windows Linux 子系統的 Unbuntu 上安裝 uwsgi。
雖然它沒有給出權限錯誤,但我通過運行解決了它:
sudo pip install uwsgi
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.