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版本了。