Windows 10安裝uWSGI:不可行、失敗了


Windows 10家庭中文版,Python 3.6.4,uwsgi-2.0.17.tar.gz,壓縮工具-7-zip

 

提示:請不要和我一樣嘗試,浪費時間,去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的錯誤仍然存在。

不知道該怎么辦,,在百度輸入了錯誤,獲得了解答——參考資料中的window安裝uwsgi 遇到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

百度百科的poll()

 

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

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

那么,Windows上開發的Django程序可以輕松移植到Linux嗎?

 

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

 

參考資料:

uwsgi官網

Django Nginx+uwsgi 安裝配置(菜鳥教程)
uWSGI詳解
windows下python安裝uwsgi (2018-02-28)
Windows7使用nginx+apache部署django項目

window安裝uwsgi 遇到uname完美解決

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM