1. 程式人生 > >Windows 安裝uWSGI:不可行

Windows 安裝uWSGI:不可行

提示:請不要和我一樣嘗試,浪費時間,去Linux上玩吧!

幾個小時的安裝經歷

昨天下午學習到將“Django專案部署到Nginx伺服器”,此部署除了需要Nginx伺服器外,還需要一個和Nginx伺服器

進行通訊的協議軟體——uwsgi。

可是,經過嘗試,最終沒能成功將uwsgi安裝到Windows 10,而且有網友的博文說uwsgi不支援在Windows 10上安

裝,即,不可以!但是呢,官網和網友的博文都表明可以在Windows上安裝Cygwin,然後在Cygwin環境中安裝。

我以為, 沒有必要繼續嘗試在Cygwin上安裝uwsgi等軟體了,直接安裝一個Linux作業系統(Ubuntu?),然後再嘗

試是最好的,畢竟,最終Django專案是要部署到Linux或UNIX上的。

安裝過程中出現的錯誤

1.pip安裝

Traceback顯示在uwsgiconfig.py的line 8呼叫os.uname()[0]發現錯誤:

AttributeError: module ‘os‘ has no attribute ‘uname‘

技術分享圖片

在IDLE中匯入os模組,使用dir(os)命令進行檢查,的確沒有發現其下有uname屬性(下面是部分截圖):

技術分享圖片

2.python3 setup.py install安裝(uwsgi離線包)

在使用pip命令無法直接安裝成功之後,即可嘗試下載模組的離線安裝包,再進行手動下載了。

評論:pip都無法安裝成功,除開沒找到的原因,下載離線安裝包能安裝成功?表示懷疑~

可以從pypi.org網站、uwsgi的Github主頁下載。下圖是pypi.org網站的uwsgi下載頁截圖:

技術分享圖片

使用7-zip解壓到當前目錄,得到一個uwsgi-2.0.17.tar,再解壓tar檔案,得到uwsgi-2.0.17資料夾,然後就可以基於此

資料夾安裝uwsgi了。

技術分享圖片

技術分享圖片

再把uwsgi資料夾放到合適的位置(有博文說放到Python的lib/site-packages下,當我認為沒必要,直接放C盤下即可)。

接下來,使用命令列進入uwsgi目錄——裡面有一個setup.py檔案用來安裝uwsgi的,執行python3 setup.py install命令,結

果,uname的錯誤仍然存在。

uwsgiconfig.py檔案進行修改:

-匯入platform模組

-使用platform.uname替換os.uname (總共四個)

技術分享圖片

再次執行python3 setup.py install命令,結果,還是出錯!這次提示:

Exception: you need a C compiler to build uWSGI

需要一個C語言編譯器,而此時的環境中沒有!

經過網路搜尋,可以安裝一個Cygwin解決此問題。好吧,安裝Cygwin。

Cygwin是什麼?從我的使用經歷來看,就是在Windows上模擬了一個Linux的執行環境,更多見官網。

技術分享圖片

安裝Cygwin:先選擇了一個日本的映象(mirror),結果安裝失敗了;後來又選擇了唯一的HK的映象(下圖紅框中),安裝成功。

技術分享圖片

安裝成功:

技術分享圖片

GCC也有了!(就是我們需要的C編譯器,其實,不用解釋的吧?)

技術分享圖片

下面,將Cygwin中的編譯器命令新增到Windows的環境變數Path中:

技術分享圖片

在Windows命令列中再次執行python3 setup.py install命令,失敗,提示了兩個error:

UWSGI_EVENT_IN、UWSGI_EVENT_OUT

技術分享圖片

那麼,在Cygwin中執行python3 setup.py install命令呢?結果還是失敗!

技術分享圖片

此時,快無招了!

網路搜尋UWSGI_EVENT_IN、UWSGI_EVENT_OUT相關資訊,最終發現這兩個巨集定義出現在uwsgi的core/event.c原始檔中:

技術分享圖片

一看,繼續網路搜尋,中文的、英文的——主要是stackoverflow,可是,沒有解決方案,而且有些博文就

直接說,不支援在Windows上安裝uwsgi!

或許過一段時間就可以了,不過,這樣重大的訊息一定不會被一位Python程式設計師錯過的,對吧?

放棄這條路吧!去安裝Ubuntu吧!再去Ubuntu上玩Django+Nginx+uwsgi吧!

P.S.

可是,為什麼會這樣呢?poll是什麼(多年前去了解過,後來,忘記了)?

關於poll的資料,繼續網路搜尋吧!

作者:Ben.Z

無法在Windows上釋出Django程式了,不過,還是可以在Windows上測試、練習Django程式的開發的。

還可以通過檢視博文學習Nginx+uwsgi的配置的。

那麼,Windows上開發的Django程式可以輕鬆移植到Linux嗎?

看來,還是得把Linux好好學習下才是的!

參考資料:

標籤:安裝   技術分享   blog   通過   get   dir   主頁   compiler   位置   

原文地址:https://www.cnblogs.com/luo630/p/9031756.html