簡體   English   中英

在 virtualenv 中安裝 uwsgi 時出錯

[英]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/
  • Linux 4.4.0-66-通用 x86_64
  • Python 3.5.2

有什么解決方案嗎? 謝謝

你需要安裝 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(風滾草),

  1. 我停用並刪除了我的 venv
  2. 通過 yast2 安裝 python3-devel
  3. 然后重新創建並激活了我的 venv
  4. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM