推荐学习书目
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
nevin47
V2EX  ›  Python

web 框架 or QT?

  •  
  •   nevin47 · Nov 20, 2015 · 6514 views
    This topic created in 3894 days ago, the information mentioned may be changed or developed.

    最近水了一篇论文,导师觉得非常满意,关于机器学习算法改进的。当然算法改进后对一些问题的处理确实有了一定的性能提升,然后他觉得独乐乐不如众悦乐,让我把这套算法加一个 GUI 写成以后可以留下来给别人用的软件
    😂😂😂😂可是小弟以前是做 PHP 的,现在用 Python 也只停留在命令行写算法的阶段。

    所以来求助一下万能的 V 友们,现在算法的源程序基本已经完成了,调用的库主要是:
    1. numpy
    2. scipy
    3. sci-kit learn

    不知道用 web 框架然后再接入算法可行么,与调用的那些库能兼容么,然后是 Django 、 Flask 还是 web.py 更好?接触了下 Django 发现和 PHP 的开发差距蛮大的,不知道另外两个可要好点

    QT 的话我看有人用这个做过,不过相对 WEB 框架这套就更不熟悉了,有没有熟悉的大神推荐一个学着比较迅速的,因为时间也紧迫……

    Thank All

    39 replies    2015-11-21 23:51:41 +08:00
    wizardforcel
        1
    wizardforcel  
       Nov 20, 2015 via Android
    数据可视化还是 web 比较方便一点 各种现成的 js 库

    我当时拿 java+weka 做了个挖掘的东西 没用 web 所以只能苦逼的用 swing+jfreechart 结果自然是不如用 web 的其他组漂亮

    php 用框架的话其实和 py 差别也不大 只是 php 可以不用框架写 然后就非常非常乱 框架是减少迁移所需的经验以及增强团队交接的这么一个东西
    jadecoder
        2
    jadecoder  
       Nov 20, 2015
    如果界面简单的话就直接 tkinter
    seki
        3
    seki  
       Nov 20, 2015
    框架可以来简单的,比如 flask 或者 Bottle
    喜欢传统型 gui 的话也有 python-cef 之类的
    wizardoz
        4
    wizardoz  
       Nov 20, 2015
    web 和单机给人的感觉上就不是一个级别的。
    如果不想现学 Django 的话,可以找一个消息队列来连接 PHP 和 Python ,用 PHP 来做啊。
    thomaspaine
        5
    thomaspaine  
       Nov 20, 2015
    pyQt?
    jimrok
        6
    jimrok  
       Nov 20, 2015
    D3 的库?
    nevin47
        7
    nevin47  
    OP
       Nov 20, 2015
    @wizardforcel 重点在于 WEB 能接入那些库么,算法必须在这三个库的框架下进行
    nevin47
        8
    nevin47  
    OP
       Nov 20, 2015
    @jadecoder tkinter 最后能编译成跨平台的软件么

    @seki 我不知道这些框架能不能接这些第三方库的……

    @wizardoz negative ……太复杂了,不适合分发

    @thomaspaine 能打包么……

    @jimrok D3 是啥……
    ctftemp
        9
    ctftemp  
       Nov 20, 2015 via Android
    web.py 非常简单,一天学会。如果你会前端或有人帮你做前端很快就能搞定。 pyqt 不推荐,环境配置太麻烦,难以部署,而且如果没学过 qt 的话学习成本也挺高的。
    Narcissu5
        10
    Narcissu5  
       Nov 20, 2015 via Android
    会在客户机上调用系统功能么(比如写文件),没有的话果断 web 吧
    jimrok
        11
    jimrok  
       Nov 20, 2015
    nevin47
        12
    nevin47  
    OP
       Nov 20, 2015
    @ctftemp 中午吃了饭就试试,前端都不会好意思说自己做过 PHP 么😳


    @Narcissu5 我也偏好 WEB ,比较习惯
    allan888
        13
    allan888  
       Nov 20, 2015
    这种软件真的没人在乎界面,能跑起来就谢天谢地了,命令行都行。
    jadecoder
        14
    jadecoder  
       Nov 20, 2015
    @nevin47 tkinter 是 python 自带的,不需要编译打包。只要你不调那些 win32 API 就是跨平台的
    jadecoder
        15
    jadecoder  
       Nov 20, 2015
    @nevin47 到时候你执行 python 脚本就跳出来一个窗口
    nevin47
        16
    nevin47  
    OP
       Nov 20, 2015
    @allan888 要给没有任何程序基础的人用

    @jadecoder 要给没有任何程序基础的人用…… tkinter 能像 Java 那样打包成可执行程序么
    jadecoder
        17
    jadecoder  
       Nov 20, 2015
    @nevin47 可以是可以,但是我感觉你搞错方向了,要做个给普通人的 MP3 播放器都是巨大的工程,何况一个机器学习程序。这件事的难度完全不在打包
    Owenjia
        18
    Owenjia  
       Nov 20, 2015
    试下 bottle? 上手挺快的。打包可以试下 ex_freeze 。
    zjqzxc
        19
    zjqzxc  
       Nov 20, 2015
    如果仅限于 windows , Tkinter 是最简单暴力的选择。 Linux 下需要装 tkinter 库,一个命令的事儿也不麻烦。 mac 下不清楚,可以 import 出来,但好像官方文档说这个 tkinter 不是官方维护的还是什么。。

    其实我想说的是,既然熟悉 php 那就用 php 写,自己怎么方便怎么来;这种没有固定需求的事儿,无论做成什么总要有人吐槽的(用 qt 有人嫌你的界面难看或者不好用,用 python web 有人说还得开浏览器太麻烦),还不如直接用对自己最省时间的方法解决,以后谁有意见谁自己重写。
    wizardforcel
        20
    wizardforcel  
       Nov 20, 2015 via Android
    @nevin47 scikit 跟框架并存倒是可以

    但是你这个项目人略少啊 我们当时是一个人实现算法 一个人调参数 一个人搭 web 框架 还有一个人搞可视化 时间富余的话还成 。。
    BUPTGuo
        21
    BUPTGuo  
       Nov 20, 2015
    @wizardforcel 感觉正是我现在做的事。。。每次都被老师吐槽图太难看了
    nevin47
        22
    nevin47  
    OP
       Nov 20, 2015
    @zjqzxc PHP 去写重构这些算法和模型我选择狗带

    @jadecoder 算法已经完成了,命令行可以跑通,现在需要一个 GUI 来供别人操作而已

    @Owenjia 回头看看,我现在是 mac 下开发,但是要提供给 mac/windows 这两个平台使用,而且需要打包的

    @wizardforcel 算法已经做好了,参数是自动寻优……现在就是要做 web 或者桌面端
    cnkiller
        23
    cnkiller  
       Nov 20, 2015 via Android
    这两天在看的东西, web+aauto.web 用 go 两个 exe 完成

    就是客户端不能跨平台
    g00001
        24
    g00001  
       Nov 20, 2015
    aardio( aauto ) 做客户端 EXE 小、轻、快、做出来的界面小而美,提供非常多的 web 控件,象 webkit,webform,htmlayout...一堆,而且还带了个 python 解释器支持 python 代码、当然缺点是限于 windows ,但桌面客户端跨平台意义真不大,在 PC 上其他操作系统的占有率基本可以忽略不计。

    跨平台不能发挥专有平台的优势,增加不必要的复杂度,最麻烦的就是体积大,写个记事本软件界面一般般的就近百 MB ,体积大带来的不仅仅是下载传输慢,启动占用资源也大,各种坑就多,浪费的时间就多,欲哭无泪的时候就更多。
    P0P
        25
    P0P  
       Nov 20, 2015
    我看不懂有什么难度, v2 的水平也真是醉了。

    最简单的你 python 撸一套 web 前端,顺便调用你后台不就行了,客户机可以打开浏览器直接访问,或者直接 pyqt 撸一发不就可以了,另外用 python 跨平台不是分分钟的事情吗。。有难度吗?
    jzfr
        26
    jzfr  
       Nov 20, 2015
    @lazydomino 就你最了不起了,看不起 V2 的水平那你来这里掉架干什么,先看懂别人在说什么再发脾气好吗 ? 你第一次接触 python 就马上能分分钟撸出能给别人用的软件 GUI 还 WEB 前端调用后台?撸了几分钟?
    poke707
        27
    poke707  
       Nov 20, 2015
    已有 command line 了吗?试试 https://github.com/chriskiehl/Gooey
    nevin47
        28
    nevin47  
    OP
       Nov 20, 2015
    @lazydomino 你了解这几个包么?全是混写的包库随便去调用然后等着报错咯?既然抛出问题一是求助于大牛,二则是想看看大家的讨论积累些经验,你要觉得问题水平不高要不 show me the code ,要不 block 我右拐慢走不送


    @jzfr


    @poke707 回头看看,看起来好黑科技的感觉……
    julyclyde
        29
    julyclyde  
       Nov 20, 2015
    python 和裸 PHP 的差别确实较大。不过 PHP 也有框架,以及 python 也可以写裸 CGI

    “算法”类,我总以为会运行较长时间。如果这样,就不适合用 web 了,因为对浏览者、服务器,单次长事件运行都很不友好
    Owenjia
        30
    Owenjia  
       Nov 20, 2015
    @nevin47 ex_freeze Mac 和 Windows 下都可以用的呀。
    nevin47
        31
    nevin47  
    OP
       Nov 21, 2015
    @julyclyde 确实没有考虑到这个问题,那请问用 QT 写 GUI ,然后打包不同平台下的程序这样靠谱么


    @Owenjia 看了一下,遇到复杂库调用的时候蛮复杂的,研究研究
    zhuangzhuang1988
        32
    zhuangzhuang1988  
       Nov 21, 2015
    界面? c#上.
    zonghua
        33
    zonghua  
       Nov 21, 2015 via iPhone
    @nevin47 PHP 做密集处理运算是不可能的
    chengzhoukun
        34
    chengzhoukun  
       Nov 21, 2015
    flask 挺好的
    daiv
        35
    daiv  
       Nov 21, 2015
    @zhuangzhuang1988 界面是不是 c sharp 最简单了,针对 win
    zjqzxc
        36
    zjqzxc  
       Nov 21, 2015
    @nevin47 怪我没说清。。
    我并不是说要用 php 重写,只是说把数据的展示部分用 php+一些前端技能展示出来。

    毕竟“展示”功能只是个非核心的内容,没有必要再在这个非核心的东西上浪费过多时间。虽然这样会给以后的使用者带来一定的麻烦。
    slowgen
        37
    slowgen  
    PRO
       Nov 21, 2015
    既然是做 php 的,前端技能应该也有,可以考虑下 nw.js ,相当于把 html 打包成 exe,还跨平台,还可以调用 nodejs 的库,只要在里面各种命令执行就可以把代码结合在一起了
    joshz
        38
    joshz  
       Nov 21, 2015
    python 做科学计算,如果界面不太复杂,前端就用 TraitsUI 吧。一套 MVC 框架,使用起来比较简单,上手快,界面库可以用 QT 或者 wxWidgets 。
    professorz
        39
    professorz  
       Nov 21, 2015
    不是一个难度级别的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2905 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 77ms · UTC 05:51 · PVG 13:51 · LAX 22:51 · JFK 01:51
    ♥ Do have faith in what you're doing.