V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
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
justfly
V2EX  ›  Python

你们用python做web开发时会遇到那些深坑,pythoner们畅所欲言,讨论一下啊

  •  
  •   justfly · Jun 21, 2013 · 7332 views
    This topic created in 4693 days ago, the information mentioned may be changed or developed.
    如题,大家讨论在python web开发过程中遇到那些深坑,让你头痛不止又豁然开朗的!

    不用python的也可以分享一下自己开发中的被坑的辛酸史
    46 replies    1970-01-01 08:00:00 +08:00
    helone
        1
    helone  
       Jun 21, 2013
    配置环境....
    germ
        2
    germ  
       Jun 21, 2013
    全局变量,这个经常会遇到!
    ry_wang
        3
    ry_wang  
       Jun 21, 2013
    UI永远是WEB的毒瘤。。。
    ma6174
        4
    ma6174  
       Jun 21, 2013
    编码问题
    glasslion
        5
    glasslion  
       Jun 21, 2013
    还在用Python2.5
    loading
        6
    loading  
       Jun 21, 2013 via iPhone
    编码 +65536
    iscraft
        7
    iscraft  
       Jun 21, 2013
    编码 BOM 尼玛
    yakczh
        8
    yakczh  
       Jun 21, 2013
    编码
    ufo22940268
        9
    ufo22940268  
       Jun 21, 2013
    菜鸟表示import冲突的问题让我很困扰
    okidogi
        10
    okidogi  
       Jun 21, 2013
    有一次启动 django 出现了 cannot import indexes 的错误。indexes是haystack的一个模块,一般这种情况是哪儿的import出现了循环引用。debug了半天,结果发现是因为没有设定文件编码而代码出现了中文字符导致的 (#-*-coding:utf-8 -*-)。

    但是坑爹的是,一般没有设定文件编码出现中文字符django会报另外的错误的。当时杀掉django的心都有了,说多了都是泪阿。
    est
        11
    est  
       Jun 21, 2013
    wsgi 不能异步。
    ushuz
        12
    ushuz  
       Jun 21, 2013
    编码+10086
    C0VN
        13
    C0VN  
       Jun 21, 2013
    字符编码,头大!!!
    likoshow
        14
    likoshow  
       Jun 21, 2013
    被时区坑过
    shachuan
        15
    shachuan  
       Jun 22, 2013
    珍爱生命 远离win~

    重启后就没了的问题这算个what啊
    ayang23
        16
    ayang23  
       Jun 22, 2013
    from __future__ import division 引发的整数相除得出浮点数的结果差点没把折腾死
    caoyue
        17
    caoyue  
       Jun 22, 2013
    字符编码
    以及各种时间转换
    greatghoul
        18
    greatghoul  
       Jun 22, 2013
    各种包因为墙的关系安装不上。
    jjx
        19
    jjx  
       Jun 22, 2013
    n年前,做一个内网django项目, 没有关闭debug

    结果几个后内存占用过大当机,百般调试后, 无解,最终查看代码原来django debug模式把执行过的sql语句都写到一个querties的列表中去的(现在去看了一下,还是如此). n天运行下来后,这个querites列表内存占用太大。
    da_a
        20
    da_a  
       Jun 22, 2013
    真是编码啊 很头疼 肉眼分辨不出来 只能试错
    0bit
        21
    0bit  
       Jun 22, 2013
    @ayang23 既然引入这个了,不就是想要浮点数的结果吗?
    0bit
        22
    0bit  
       Jun 22, 2013
    公司内部隔离网段,安装充满了各种依赖的类库,绝对是最蛋疼的事情,没有之一。

    考虑自己布一个PYPI
    raptor
        23
    raptor  
       Jun 22, 2013
    编码是个常见的坑,很多年前我曾经在cherrypy里碰到过,最后还是改了cherrypy的源码解决的……
    全局变量也是个风险很大的坑,我曾经用这个来存在用户登录信息,结果用户登录窜了……还好发现得及时……现在再也不敢用了,必须session伺候。
    时区也是坑,不过是小事了,服务器时间不准才头疼。
    至于windows……嘿嘿,珍爱生命,远离windows。

    @0bit virtualenv或virtualenvwrapper
    muxi
        24
    muxi  
       Jun 22, 2013
    配置环境和包管理
    python社区的各种包实在是混乱,每次安装我都忍不住喷一遍
    yemoluo
        25
    yemoluo  
       Jun 22, 2013
    我前天在aliyun上装pylibmc,各种问题,装了2个小时才修好
    y0
        26
    y0  
       Jun 22, 2013
    我想在 linux 上装 gmpy 装不动,很郁闷,老说缺各种 library, 还说找不到 Python.h
    zyAndroid
        27
    zyAndroid  
       Jun 22, 2013   ❤️ 1
    @y0 没装python-dev吧,

    apt-get install pythin-dev
    zyAndroid
        28
    zyAndroid  
       Jun 22, 2013
    @greatghoul 用proxychain可以解决这个问题
    humiaozuzu
        29
    humiaozuzu  
       Jun 22, 2013
    - 编码问题
    - pypi 上很多包是要到 sourceforge 上面下载,然后 sf 间歇性被墙
    - 有时偷懒不用 virtualenv 某些包换新版本后各种问题折腾
    - gevent
    sillyousu
        30
    sillyousu  
       Jun 22, 2013
    装PIL的时候遇到过依赖的库路径不对,需要做软链或者改手工指定正确的路径。
    y0
        31
    y0  
       Jun 22, 2013
    @zyAndroid

    python-dev is already the newest version.
    python-dev set to manually installed.

    这算是装了还是没装啊。需要手动装? 在哪里 make install 吗?
    y0
        32
    y0  
       Jun 22, 2013
    @zyAndroid 搞定了,感谢。
    no13bus
        33
    no13bus  
       Jun 22, 2013
    @raptor 遇到了相同的问题,cherrypy一些中文显示只能改源码
    oldcai
        34
    oldcai  
    PRO
       Jun 22, 2013
    比起C++,楼上这些都不是个事。

    不过我感觉算的上坑的,就是多线程因为GIL还是只能用单核——这也不算什么——但是为什么每个线程还是要10M的堆栈呢,内存开销巨大!(当然,也有办法缓解(ulimit(但是分太小了程序会崩溃(坑))))

    好吧,好不容易有了个stackless python吧,兼容官方C python吧,官方还不合并。
    raptor
        35
    raptor  
       Jun 22, 2013
    @no13bus 所以我放弃cherrypy很多年……
    jokaye
        36
    jokaye  
       Jun 23, 2013
    编码, 单元测试
    mengzhuo
        37
    mengzhuo  
       Jun 26, 2013
    @jjx 就算是debug不也是把SQL语句输出到log里面吗
    mengzhuo
        38
    mengzhuo  
       Jun 26, 2013
    @greatghoul 可以把pip源设到清华的
    bigzhu
        40
    bigzhu  
       Jun 27, 2013
    import 包的时候,自己的代码写的多了需要分包的时候,还是很蛋疼的.没法用比较好的相对路径引用.
    VYSE
        41
    VYSE  
       Jun 27, 2013
    12颗至强请求过多还是只能会满载,即使用了GEVENT+GUNICORN+NGINX,实在受不了CPYTHON的效率
    zhwei
        43
    zhwei  
       Jun 27, 2013 via Android
    编码 + 1
    漫长的包。。(自己在校内弄了个pypi后好多了)
    Python版本问题算不算
    jjx
        44
    jjx  
       Jun 28, 2013
    @mengzhuo

    我们说的是一回事吗? 这里输出到日志同我讲的事情没有关系, 我的意思是django在debug模式下会将sql 语句写到一个列表,如果你的程序类型是监控式的,有密集的sql查询,在django中另起一个线程或进程在跑,则在几天内会耗尽你的内存
    mengzhuo
        45
    mengzhuo  
       Jun 28, 2013
    @jjx

    debug模式下尽量收集最大信息不正是程序应该做的吗?
    所以忘记关闭debug模式导致宕机不算作楼主所说的“坑”,应该是人为失误。
    Livid
        46
    Livid  
    MOD
    PRO
       Jun 30, 2013
    各类教程只能教你最基本的 CRUD,但是实际项目中对安全和性能的需求,需要自己积累经验。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5209 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 117ms · UTC 09:41 · PVG 17:41 · LAX 02:41 · JFK 05:41
    ♥ Do have faith in what you're doing.