uwsgipython
❶ win7 怎麼部署python uwsgi網站環境
1、我們首先要到Python官方下載Python語言包,還要下載一個WinPython和一個Spyder軟體(簡單的集成開發環境)下載好的軟體如下所示。
2、我們接下來的事情就是軟體的安裝與環境變數的配置了,第一我們先要安裝Python程序語言開發工具,在我們下載的工具文件夾中安裝「python-3.4.2.msi」文件。
3、右鍵點擊按裝過後顯示提示對話框,點擊「安裝」。
4、在這里我們選擇「Install for all users」為所有用戶安裝,單擊「確定」
5、接下來就是選擇目標目錄「Select Destination Directory」在這里我們可以選擇我們要安裝的目標目錄(這是選擇自己認為合適的盤符),我們在這里選擇D盤下的「D:\Python34」目錄。
6、下面就是要下配置環境變數了,在電腦的桌面下右鍵點擊「我的電腦」選擇「屬性」,在打開的「系統」屬性窗口中點擊「高級系統設置」選項,打開「系統屬性」對
話框,在「系統屬性」對話框中選擇「高級」選項卡,點擊「環境變數」按鈕,在「環境變數」對話框中選擇「系統變數」中的「Path」變數,點擊「編輯」按
鈕,在「變數值」文本框中輸入「;D:\Python(這里是選擇你安裝Python的路徑)」依次單擊「確定」。
7、驗證Python是否安裝成功的方式就是在CMD命令行窗口中輸入「python」按回車,如里如下圖所示說明,Python是安裝成功的。
8、上面的操作已經把Python語言開發程序工具安裝完成,接下來就是要安裝Spyder,我們選擇安裝目錄為Python語言程序開發工具的安裝路徑「D:\Python」我們依次單擊「下一步」止至完。
9、最是WinPython的安裝,運行「WinPython.exe」文件,同意協議,設置安裝目錄為「D:\Python」,依次「next」,最後是點擊「Finish」完成安裝。
10、其實到現在為為止安裝已經完成,只是我們為了以後方便使用Spyder,我們中需要建立一個快捷方式就會大大的提高程序的啟動速度。
❷ 如何部署python3 的應用
mod_python,這是apache內置的模塊,很嚴重的依賴於mod_python編譯使用的python版本,和apache配套使用,不推薦
cgi,這個太old,不推薦,而且nginx不支持cgi方式,只能用lighttpd或者apache
fastcgi ,這個是目前流行最廣的做法,通過flup模塊來支持的,在nginx里對應的配置指令是 fastcgi_pass
spawn-fcgi,這個是fastcgi多進程管理程序,lighttpd安裝包附帶的,和
flup效果一樣,區別是flup是
python代碼級引入,spawn-fcgi是外部程序。spawn-fcgi用途很廣,可以支持任意語言開發的代
碼,php,python,perl,只要你代碼實現了fastcgi介面,它都可以幫你管理你的進程
scgi,全名是Simple Common Gateway Interface,也是cgi的替代版本,scgi協議很簡單,我覺得和fastcgi差不多,只是沒有怎麼推廣開來,nginx對應的配置指令是scgi_pass,你想用就用,flup也支持。
http,nginx使用proxy_pass轉發,這個要求後端appplication必須內置一個能處理高並發的http server,在python的web框架當中,只能選擇tornado.
python程序員喜歡發明輪子,tornado除了是一個web framework之外,它還可以單獨提供高性能http
server,所以,如果你採用其他python框架寫代碼,比如說bottle,也一樣可以通過import
tornado 來啟動一個高性能的http
server,同樣的可以採用http協議和nginx一起來部署。擴展開來,python包裡面能處理高並發的http
server還有很多,比如說gevent,也可以被其他框架引用來支持http方式部署。
現實當中,用java來做web程序,通常就用http和nginx配合,應用伺服器選擇tomcat或者jetty
uwsgi,包括4部分組成,
nginx從0.8.4開始內置支持uwsgi協議,uwsgi協議非常簡單,一個4個位元組header+一個body,body可以是很多協議的
包,比如說http,cgi等(通過header裡面欄位標示),我曾經做個一個小規模的性能對比測試,結果表明,uwsgi和fastcgi相比,性能
沒有太明顯的優勢,也可能是數據集較小的原因
uwsgi的特點在於自帶的進程式控制製程序.它是用c語言編寫,使用natvie函數,其實和spawn-fcgi/php-fpm類似。所以uwsgi可以支持多種應用框架,包括(python,lua,ruby,erlang,go)等等
uwsgi協議
web server內置支持協議模塊
application伺服器協議支持模塊
進程式控制製程序
Gunicorn,和uwsgi類似的工具,從rails的部署工具(Unicorn)移植過來的。但是它使用的協議是 WSGI,全稱是Python Web Server Gateway Interface ,這是python2.5時定義的官方標准(PEP 333 ),根紅苗正,而且部署比較簡單,http://gunicorn.org/ 上有詳細教程
mod_wsgi,apache的一個mole,也是支持WSGI協議,https://code.google.com/p/modwsgi/
❸ python Django自帶wsgi.py 為什麼部署還需要uWSGI
Django自己運行的只用於開發者調試,且為單線程工作。如果是要作為產品發布則需要用到其他的伺服器部署,比較常見的用Nginx+uwsgi。
❹ uwsgi問題 centos6.8 python3.6的環境
下載Python安裝包
cd /usr/local/src
wget https : // www . python . org/ftp/python/3.6.0/Python-3.6.0.tgz 123123
解壓
tar -zxvf Python-3.6.0.tgz 11
進入解壓目錄
cd Python-3.6.011
編譯安裝包
./configure --prefix=/usr/local/python
make && make install1212
添加環境變數
echo PATH='/usr/local/python/bin/:$PATH' >> /etc/profile
source /etc/profile123123
檢查是否成功,執行下面代碼
python3.6
Python 3.6.0 (default, Jun 1 2017, 14:01:43)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux
Type "help", "right", "credits" or "license" for more information.
>>> print('hello word')
hello word
❺ Uwsgi如何進行更替
HttpUwsgiMole交替。
uWSGI是一個Web伺服器,它實現了WSGI協議、uwsgi、http等協議。Nginx中HttpUwsgiMole的作用是與uWSGI伺服器進行交換。
WSGI:全稱是WebServerGatewayInterface,WSGI不是伺服器,python模塊,框架,API或者任何軟體,只是一種規范,描述webserver如何與webapplication通信的規范。server和application的規范在PEP3333中有具體描述。要實現WSGI協議,必須同時實現webserver和webapplication,當前運行在WSGI協議之上的web框架有Torando,Flask,Django。
❻ 如何在ubuntu中安裝uwsgi
uwsgi安裝
ubuntu安裝uwsgi遇到的問題
Command "/root/myenv/bin/python3.4 -c "import setuptools, tokenize;__file__='/tmp/pip-build-7cr2or3v/uwsgi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-omoei_c8-record/install-record.txt --single-version-externally-managed --compile --install-headers /root/myenv/include/site/python3.4/uwsgi" failed with error code 1 in /tmp/pip-build-7cr2or3v/uwsgi
(myenv)root@iZ94oziy87wZ:~# 12
上面的問題不知道原因,也沒有給我太多錯誤提示。
python-dev已經安裝。
索性直接安裝源碼。
直接 下載源碼安裝
*** uWSGI compiling embedded plugins ***
[x86_64-linux-gnu-gcc -pthread] plugins/python/python_plugin.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
#include <Python.h>
^123456
這回算是知道問題在哪裡了,Python.h
find /usr -name Pythond.h
只在Python2.7下面找到這個。
頓悟
apt-get install python3-dev
以上所有操作均在virtualenv下面完成。
❼ 為什麼uwsgi會修改python home
python是程序支持語言。就好像有的手機程序用JAVA一樣,沒有JAVA有些軟體就無法運行。 plugin就是插件。也就是說,這個東西是python語言的一個插件而已,有時候可能需要用到。
❽ uwsgi2.0 用python2.6.6 編譯出錯,怎麼解決
將這一行 "cmd": ["python", "-u", "$file"] 改成 "cmd": ["F:/Python/python.exe", "-u", "$file"] 試試? (如果用windows的話,可以將python目錄加入系統變數的path中,也可以解決)
❾ 在Linux系統上怎麼通過uWSGI配置Nginx+Python環境
1.安裝ubuntu有uwsgi的ppa:
add-apt-repository ppa:stevecrozz/ppa
apt-get update
apt-get install uwsgi
2. 用uwsgi代替mod_wsgi
Nginx 的整體配置這里不說了,假設已經明白 Nginx的基本配置,那麼uwsgi就類似這么配置:
location / {
include uwsgi_params
uwsgi_pass 127.0.0.1:9090
}
再比如django就是:
.......
from django.core.handlers.wsgi import WSGIHandler
application = WSGIHandler()
然後運行uwsgi監聽9090,其中-w後跟模塊名,也就是剛才配置的myapp
uwsgi -s :9090 -w myapp
運行網站發現已經部署完成了。
3.uwsgi的參數
以上是單個project的最簡單化部署,uwsgi還是有很多令人稱贊的功能的,例如:
並發4個線程:
uwsgi -s :9090 -w myapp -p 4
主控制線程+4個線程:
uwsgi -s :9090 -w myapp -M -p 4
執行超過30秒的client直接放棄:
uwsgi -s :9090 -w myapp -M -p 4 -t 30
限制內存空間128M:
uwsgi -s :9090 -w myapp -M -p 4 -t 30 --limit-as 128
服務超過10000個req自動respawn:
uwsgi -s :9090 -w myapp -M -p 4 -t 30 --limit-as 128 -R 10000
後台運行等:
uwsgi -s :9090 -w myapp -M -p 4 -t 30 --limit-as 128 -R 10000 -d uwsgi.log
4.為uwsgi配置多個站點
為了讓多個站點共享一個uwsgi服務,必須把uwsgi運行成虛擬站點:去掉「-w myapp」加上」–vhost」:
uwsgi -s :9090 -M -p 4 -t 30 --limit-as 128 -R 10000 -d uwsgi.log --vhost
然後必須配置virtualenv,virtualenv是Python的一個很有用的虛擬環境工具,這樣安裝:
apt-get install Python-setuptools
easy_install virtualenv
然後設置一個/多個app基準環境:
virtualenv /var/www/myenv
應用環境,在此環境下安裝的軟體僅在此環境下有效:
source /var/www/myenv/bin/activate
pip install django
pip install mako
...
最後配置nginx,注意每個站點必須單獨佔用一個server,同一server不同location定向到不同的應用不知為何總是失敗,估計也 算是一個bug。
server {
listen 80;
server_name app1.mydomain.com;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9090;
uwsgi_param UWSGI_PYHOME /var/www/myenv;
uwsgi_param UWSGI_SCRIPT myapp1;
uwsgi_param UWSGI_CHDIR /var/www/myappdir1;
}
}
server {
listen 80;
server_name app2.mydomain.com;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9090;
uwsgi_param UWSGI_PYHOME /var/www/myenv;
uwsgi_param UWSGI_SCRIPT myapp2;
uwsgi_param UWSGI_CHDIR /var/www/myappdir2;
}
}
這樣,重啟nginx服務,兩個站點就可以共用一個uwsgi服務了。
❿ uwsgi選定python版本
這個應該與uwsgi關系不大。首先你計算機上肯定是安裝了兩個python,uwsgi如果調用的是python2.6(也許只是顯示的python2.6),可能是它自帶的(可能性不大),也可能是自己搜索出來的(可能性也不大)。也有可能是顯示錯了,實際上就是python2.7.3。
按理與uwsgi關系不大,應該是django啟動的時候使用的python。如果你是在linux下,那你找到uwsgi的這個啟動用戶。在這個用戶環境下,也許因為path中的先後順序不同,導致使用的python的路徑並不是python2.7的。
如果你是在windows下,就要檢查你是否使用了多個python,以前是否使用了virtualenv這個工具。
不過如果你用了uwsgi自帶了基於django的監控。那麼django的啟動python版本可能受受控於uwsgi的python版本了。