pyenv使用
主要还是做一个记录,简单介绍一下pyenv的用法。有不妥的地方,高手请指正。
这是我当前系统python
版本,
#pyenv versions
* system (set by /root/.pyenv/version)
2.7.9
使用的是python2.6.6
#python -V
Python 2.6.6
创建一个python 2.7.9
的环境,名字叫site
#pyenv virtualenv 2.7.9 site
New python executable in /root/.pyenv/versions/site/bin/python2.7
Also creating executable in /root/.pyenv/versions/site/bin/python
Installing setuptools, pip...done.
Ignoring indexes: https://pypi.python.org/simple/
Requirement already satisfied (use --upgrade to upgrade): setuptools in /root/.pyenv/versions/site/lib/python2.7/site-packages
Requirement already satisfied (use --upgrade to upgrade): pip in /root/.pyenv/versions/site/lib/python2.7/site-packages
Cleaning up...
#pyenv versions
* system (set by /root/.pyenv/version)
2.7.9
site
创建一个工作目录/workspace/site
,并将site
写到这个目录下的一个隐藏文件.python-version
文件里,这样当你每次进入这个目录的时候,将会自动执行activate site
启动你这个项目所需要调用的python环境,当你退出这个目录时,也会自动执行deactivate site
。=_= 很方便吧~!
#mkdir -p /workspace/site
#echo site > /workspate/site/.python-version
#cd /workspace/site/
pyenv-virtualenv: activate site
(site)
#python -V
Python 2.7.9
(site)
#cd ..
pyenv-virtualenv: deactivate site
#python -V
Python 2.6.6
现在我们来安装flask
,本来打算跟上一篇一样一次部署一堆模块,但是想想还是一点点来吧,稳扎稳打。
稍微提醒一下,安装任何模块尽量在你要运行的环境中安装,避免模块装错环境的情况。安装完以后进入python
,并import flask
检测是否导入成功。
#pip install Flask==0.10.1
Collecting Flask==0.10.1
Using cached Flask-0.10.1.tar.gz
Collecting Werkzeug>=0.7 (from Flask==0.10.1)
Using cached Werkzeug-0.10.4-py2.py3-none-any.whl
Collecting Jinja2>=2.4 (from Flask==0.10.1)
Using cached Jinja2-2.7.3.tar.gz
Collecting itsdangerous>=0.21 (from Flask==0.10.1)
Using cached itsdangerous-0.24.tar.gz
Collecting markupsafe (from Jinja2>=2.4->Flask==0.10.1)
Using cached MarkupSafe-0.23.tar.gz
Installing collected packages: Werkzeug, markupsafe, Jinja2, itsdangerous, Flask
Running setup.py install for markupsafe
Running setup.py install for Jinja2
Running setup.py install for itsdangerous
Running setup.py install for Flask
Successfully installed Flask-0.10.1 Jinja2-2.7.3 Werkzeug-0.10.4 itsdangerous-0.24 markupsafe-0.23
(site)
#python
Python 2.7.9 (default, Feb 10 2015, 01:40:34)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import flask
>>>
一个最小的应用
这是官方文档提供的代码
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
编辑一个run.py
文件,并把官方给的代码抄上,这里给了一个提示这里文件的命名不要叫flask.py
,避免导入模块时,把当前flask.py
当成模块导进去。
#python run.py
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
#curl 'http://127.0.0.1:5000'
Hello World!(site)
#curl "http://192.168.1.21:5000"
curl: (7) couldn't connect to host
应用已经跑起来了,停止服务直接CTRL+C
就可以了,现在只是跑在本地的5000
端口上,所以你只能通过127.0.0.1:5000
本地进行访问,从上边测试可以看到通过网卡配置的192.168.1.21
是无法进行访问的。你可以使用一些web服务进行代理转发(例如:apache,nginx)
,也可以对run()
启动参数进行修改,使其监听所有ip
地址
app.run(host='0.0.0.0', port=80, debug=True)
我们传递三个参数过去host
配置0.0.0.0
,意思是所有ip
都可以进行访问,服务端口是80
,开启debug
模式。重启服务
#python run.py
* Running on http://0.0.0.0:80/ (Press CTRL+C to quit)
* Restarting with stat
可以看到服务启动后的运行提示都变了,这样我们就任意访问了。
#curl "http://127.0.0.1"
Hello World!
#curl "http://192.168.1.21"
Hello World!
#