V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
zhufree
V2EX  ›  Python

在 pythonanywhere 上搭建 django 程序(Virtualenv+python2.7+django1.8)

  •  
  •   zhufree ·
    zhufree · 2015-06-01 09:22:31 +08:00 · 4520 次点击
    这是一个创建于 3259 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一天时间就用来鼓捣这个了,不过很开心终于成功了,昨天晚上折腾那个openshift到两点都没弄好(:з」∠)

    项目本体是学校图书馆的第三方功能接口,本来是给自己工作的项目组做的api,做到现在差不多图书馆的功能都全了,整理成一个project放在git上了 项目地址

    因为做的是接口所以返回信息都是json格式并且各种乱码不忍直视= =

    言归正传,容我回忆一下折腾pythonanywhere的辛酸史

    早在上个学期,就在某篇文章上看到了十大免费空间blabla的,支持python的不是很多,在这篇文章里找到了几个,openshift啦,pythonanywhere啦,当时都有尝试过,不过可能是姿势水平不够最后都没鼓捣成功

    准备工作

    首先需要注册一下,pythonanywhere的免费账户有一定的限制,只能创建一个web app,不能绑定独立域名,不能通过ssh连接,不过只是搭一个project也是够用了。

    注册成功之后直接转到dashboard页面

    dashboard

    几个tab,Console是新建一个控制台,用于操作服务器,Files是用文件目录的形式管理和编辑文件,Web是总的控制界面,Schedule和Database目前还没用上。

    上面这个绿色块的提示基本上一直都在然而并没有什么卵用,转到Web栏

    Web

    选择Add a new web app

    新建

    提示不能绑定域名blabla的不用管直接next

    选择框架

    python的框架有好几个可以选,但是选django的话有一个很捉急的地方

    这里写图片描述

    我用的是python2.7+django1.7,在这根本对不上,不过下面有一行贴心的提示,可以使用虚拟环境搭配任意版本的python和django,链接戳进去有比较详细的虚拟机配置最新版django的教程,于是就决定用最后一个Manual configuration

    这里写图片描述

    创建完成之后,现在有了一个空的web app,啥都没有= =

    这里写图片描述

    环境配置

    接下来可以进行第二步了,在console面板里打开一个Bash控制台

    这里写图片描述

    之后看上去是这样子的

    这里写图片描述

    这里有必要先说明一下这个服务器的文件系统,当然在File面板也可以看到
    在/home/Username/目录下是这样的

    这里写图片描述

    django project的包要放在用户目录下,然后通过WSGI configuration file一堆配置blabla才能跑起来
    首先跟着上面提到的教程弄好虚拟环境安装好django,直接安装成1.8版本的了- -

    这里写图片描述

    安装完之后可以用django的命令新建自己的project,在这里我直接用git clone下来放在用户文件夹下。

    这个时候兴冲冲打开链接,发现是这样的

    这里写图片描述

    说好的django呢。。。
    在web面板注意到这个

    这里写图片描述

    想到可能是因为用的虚拟环境需要设置一下
    按照示例的格式填进去就好

    这里写图片描述

    于是后来是这样的

    这里写图片描述

    然后还不忘按照提示reload一遍
    刷新了一下,还是原样= =继续找问题
    这个配置文件可以说是最关键的一步

    这里写图片描述

    打开里面都是各种框架的配置,需要哪个框架就把前面相关的注释去掉。
    下拉到django的位置

    这里写图片描述

    去掉注释和修改相应的文件夹名字,尤其注意settings.py在哪个文件夹下就填到哪个文件夹为止,于是填完是这样的

    这里写图片描述

    因为我的文件夹目录是这样的

    这里写图片描述

    这时候再reload加刷新一遍,可以看到django。。。熟悉的debug界面了。。。

    这里写图片描述

    事实上今天到这一步的时候我已经在狂喜了,因为终于跑起来了= =
    至于这个bug也是喜闻乐见,在挂SAE的时候就遇到过,因为用到了beautifulsoup这个第三方库,SAE里面是没办法只能把整个库传上去,在这里只要

    pip install beautifulsoup4

    安装一下就好了,4.3.2版本
    这个时候再刷新一下,OK,成功了

    这里写图片描述

    bug

    事实上并没这么顺利。。。我至少面对某个错误界面十几次找不到问题在哪,后来发现web面板有日志选项

    这里写图片描述

    在error.log里面找bug,先后出现了以下几种

    这里写图片描述

    文件夹名没改好= =

    这里写图片描述

    可能是django版本还是什么问题,在settings里面把这一行注释掉之后就好了。

    这里写图片描述

    这个问题一度让我觉得智商捉急,我以为不能出现sys,于是把代码里所有有关sys的全删掉了,最后才发现是pythonanwhere的wsgi模块里面有一个import sys我忘了去掉注释,导致没导入sys模块_(:з」∠)_神坑啊

    这里写图片描述

    路径问题,配置的时候已经说过

    总之并不顺利,不过在折腾的过程中也收获了不少。
    总有一天我要把openshift拿下QWQ

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1345 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 17:07 · PVG 01:07 · LAX 10:07 · JFK 13:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.