记录一下flask项目的配置,做个笔记。适合我等小白习惯windows却喜欢dpkg友好的包管理安装软件的童鞋,其实开源项目总是优先满足Unix系统的,确实比在windows上用着舒服哇!
使用工具:

  • windows7 X64
  • vagrant
  • ubuntu14
  • xshell
  • cmder(可选)
  • pycharm

准备步骤:

1.环境搭建

1
2
3
4
vagrant box add ubuntu14 URL(或者先下载box文件用文件名替代)
vagrant init ubuntu14
vagrant up
vagrant halt

NOTE.
vagrant使用可谓相当简单了,使用单文件配置,整个周期分为add/init/up/reload/suspend/halt/destroy;

另外推荐将22端口进行转发。默认转发到2222,但是当打开多个虚拟机的时候因为2222端口被占用所有会随机指定一个端口。So,固定一下对自己的设置是相当有利的。当然因为Flask默认使用5000端口进行测试,对它进行转发也是理所当然的;

至于使用vagrant
ssh登陆,用系统自带的CMD那是相当难受滴,使用cmder全功能版不错。用过一段时间不得不说相对CMD真实赏心悦目,在我的使用中感觉确定有两个。毕竟不是专业的SSH客户端,对于中文文件名无能为力,或许是我不会设置,其二是无法设置代理而且连接到远程VPS时候输入卡顿严重。所以最后还是回归了Xshell。

开机关机每次进入cmder cd c:\path 进入vagrant 在运行vagrant
up是相当厌烦的,用python脚本启动它是个不错的选择

1
2
3
4
5
import os
os.system('cd "c:\\\\ficapy\\\\microblog" && vagrant reload')
#是不是异常简单呢 切换到目录执行reload操作→不一定要先启动再重载!
# &&表示上个操作执行完毕后在执行下面的操作

2.Linux配置

1
2
3
4
5
6
7
8
9
sudo apt-get update upgrade \#更新源&升级系统
sudo apt-get install git git-core python python-dev python-setuptools
sudo easy\_install pip
sudo pip install virtualenv virtualenvwrapper
nano \~/.bashrc
添加下面两行配置后重新运行(source \~/.bashrc)
export WORKON\_HOME=\$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

NOTE:
virtualenvwarpper顾名思义是对virtualenv的二次包装,给我的赶脚就是环境不是在放在开发文件夹下面了,而且命令行直观友好容易记忆,还有TAB自动补全哟。常用的大致有mkvirtualenv/rmvirtualenv/lsvirtualenv/workon/deactive;

另外使用pip安装第三方包的时候不要使用sudo pip
install,该操作会导致安装到全局,而不是安装到当前环境中.直接使用pip
install安装.Linux比较小白,暂时我也不知道为什么

ubuntu14自带python2.7可以不用安装python。可是python-dev这个必装,否则pip安装一些需要编译安装的第三方包的时候会报一些莫名其妙的错误,比如pycurl等。同时直接使用二进制包python-pip安装pip有时候安装包会出错(一朝被蛇咬,十年怕井绳啊,所以我还是使用官方推荐的easy_install方式安装了,还有一种是下载get.py方式)

3.windows端Pycharm设置

使用vagrant后,默认设置文件将该目录映射到虚拟的的/vagrant文件夹。我们就将项目统一放在该文件夹下

不得不说的是pycharm上的vagrant插件在windows上是无法使用的,至少对我来说是这样,手动配置远端python解释器,如下图

pycharm\_remote\_interoreters\_configNote.在这里点击fill
from vagrant config就有用了,改变2222端口是一个很好的选择

设置远端python解释器后就可以在本地调用了,这还不够,同时还需要设置项目目录映射,以便解释器能够根据本地文件映射到虚拟机文件的地址让解释器执行。选择Run→Configureations,最主要的设置是一、选择解释器;二、设置work
directory和Path mapping之后就能正确的使用虚拟机的python运行本地文件了;

另外,有时候不想用xshell连接后运行python。这时候使用pycharm也是相当方便的。Tools→run
python
console就够了,会默认添加当前目录到python的包索引列表方便导入,只是有时候这个目录并不完全正确,可能是设置还是有错误吧,我每次都重运行sys.path.extend([‘/vagrant/path~~~~~~‘])手动解决

~~~~~~~~还想写个安装heroku客户端的,自己还没有很好的实践,以后试试吧,至少测试部署还是相当方便的

参考:
http://blog.segmentfault.com/fenbox/1190000000264347
http://pedrokroger.net/getting-started-pycharm-python-ide/
http://bliker.github.io/cmder/