2019独角兽企业重金招聘Python工程师标准>>>
1、安装python 2.7
2、安装apache或者xampp
3、下载mod_wsgi.so,放到apache下modules文件夹下,并修改httpd.conf以加载模块。
http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
LoadModule wsgi_module modules/mod_wsgi.so
4、安装pip,指南:
https://pip.pypa.io/en/latest/installing.html#install-pip
5、安装virtualenv,cmd下
pip install virtualenv
6、建立虚拟环境FlaskEnv2,cmd下
virtualenv D:\PythonProjects\FlaskEnv2
7、进入FlaskEnv2目录,cmd下
cd D:\PythonProjects\FlaskEnv2\Scripts
8、安装Flask和其他插件,cmd下
pip install flask
pip install flask-login
pip install flask-openid
pip install flask-mail
pip install flask-sqlalchemy
pip install sqlalchemy-migrate
pip install flask-whooshalchemy
pip install flask-wtf
pip install flask-babel
pip install guess_language
pip install flipflop
pip install coverage
9、修改apache的设置文件 C:\xampp\apache\conf\extra\httpd-vhosts.conf
ServerName example.com
WSGIScriptAlias / "D:/PythonProjects/apricot/apricot.wsgi"
Order allow,deny
Allow from all
= 2.3>
Require all granted
注意!!路径里的斜杠“/”是这个方向的,不是“\”这个方向的!这里要搞死人了!
还有下面的权限设置,用这里的这段。查了很久!
10、修改hosts文件,加入解析来测试
127.0.0.1 example.com
11、创建一个wsgi文件来测试 D:\PythonProjects\apricot\apricot.wsgi
代码如下:
##########开始#######
activate_this = 'D:/PythonProjects/FlaskEnv2/Scripts/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
import site
import sys
# Remember original sys.path.
prev_sys_path = list(sys.path)
# Add site-packages directory.
site.addsitedir('D:/PythonProjects/FlaskEnv2/Lib/site-packages')
# Reorder sys.path so new directories at the front.
new_sys_path = []
for item in list(sys.path):
if item not in prev_sys_path:
new_sys_path.append(item)
sys.path.remove(item)
sys.path[:0] = new_sys_path
sys.path.insert(0, 'D:/PythonProjects/apricot')
from app import app as application
if __name__ == '__main__': #感觉写在这里好点
app.run(debug=True)
##############结束#########
这段代码引入了独立环境到项目中,注意哦!
还是要注意那个斜杠“/”,走了不少弯路
然后就是那几个路径了,之前建立的独立环境等
12、建立一个测试的py文件 D:\PythonProjects\apricot\app.py
代码如下:
###########开始#######
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello, I'm Apricot!"
if __name__ == "__main__":
app.run()
###########结束#######
13、打开Apache,然后开ie,打开http://example.com/,看到了吧
经测试,包括sqlite的本地读写,都一切正常^_^
14、有关静态文件的访问(图、js和css等),还没研究。
参考:
Windows Python虚拟环境配置(Distribute + pip + virtualenv + virtualenvwrapper-powershell)
http://my.phirobot.com/blog/2014-02-python_in_windows.html
引入独立环境的方法
http://blog.nutenstudio.com/flask-apache-virtualenv/
有关静态1
http://jyd.me/python/use-django-with-apache-mod_wsgi/
留一下
http://blog.xavierskip.com/2014-06-18-apache-wsgi/
留2
https://www.digitalocean.com/community/tutorials/how-to-deploy-a-flask-application-on-an-ubuntu-vps
django有关静态的设置
https://django-chinese-docs.readthedocs.org/en/latest/howto/deployment/wsgi/modwsgi.html