php 转 py 新手感慨 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LINAICAI
V2EX    问与答

php 转 py 新手感慨

  •  
  •   LINAICAI 2014-12-05 10:06:35 +08:00 6113 次点击
    这是一个创建于 3968 天前的主题,其中的信息可能已经有所发展或是发生改变。
    折腾三天才搞定mac ox+pycharm+mysql
    我记得搞php那套就算是lnmp,也不过如此,但不同的是php的lnmp我直接在vps的linux上搞,安装软件包yum或者apt方便太多,反观mac ox下,py链接个mysql都要安装mysqldb模块,还各种版本问题节操砸了满地。
    这里还有个问题想知道,py3.x版本之后怎么connect mysql?我看网上说mysql官方出了新的连接器不会用不了解啊。
    之所以php转py,就为了学爬虫。。。
    53 条回复    2014-12-08 01:14:44 +08:00
    fyhqy
        1
    fyhqy  
       2014-12-05 10:09:23 +08:00   1
    不懂py的php现在在看py。
    py链接mysql的你可以直接用一个类库。或者使用cymysql
    cOnn= cymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='mysql')
    cur = conn.cursor()
    cur.execute("SELECT Host,User FROM user")
    rows = []
    for r in cur.fetchall():
    rows.append(list(r))
    cur.close()
    conn.close()

    给你参考
    LINAICAI
        2
    LINAICAI  
    OP
       2014-12-05 10:15:05 +08:00
    @fyhqy 感谢,早知道我问你好了 浪费了好多时间折腾MySQLdb~
    hahastudio
        3
    hahastudio  
       2014-12-05 10:16:23 +08:00   2
    MySQL 有给 Python 3.x 的 connector 啊
    https://dev.mysql.com/doc/connector-python/en/index.html
    luoyou1014
        4
    luoyou1014  
       2014-12-05 10:20:58 +08:00
    php周边的稳定性无出其右啊,非python与ruby能比。

    所以至今python和ruby都是我业余做项目的玩玩,一到正式工作,还是上php。
    sarices
        5
    sarices  
       2014-12-05 10:22:36 +08:00
    MySQLdb是一个坑
    LINAICAI
        6
    LINAICAI  
    OP
       2014-12-05 10:23:13 +08:00
    @hahastudio 嗯 我也是刚刚才发现的,百度了三天不知道cymysql,最后一天才知道connector
    果真百度是靠不住啊。
    另外发现mac ox 下 V2ex写新回复输入中文有问题,动不动就是假死。。。嗯在中英文切换的时候好像
    LINAICAI
        7
    LINAICAI  
    OP
       2014-12-05 10:25:19 +08:00
    @luoyou1014 其实一开始对python下编程ide太垃圾了不以为然,但是发现居然有pycharm这么好的东西才学。。。你懂的谁用谁知道啊
    finab
        8
    finab  
       2014-12-05 10:26:37 +08:00
    @LINAICAI 用谷歌和stackoverflow吧,百度基本搜不到我要的东西。。
    假死是不是浏览器的问题, 我没有遇到你的那种情况,回复正常
    LINAICAI
        9
    LINAICAI  
    OP
       2014-12-05 10:33:39 +08:00
    @finab
    之从升级到10.9
    我的世界观全毁了,wifi经常扫描不出来,tplink的路由器,不知道大家遇到没有,必须要重新启动才行。。。
    软件崩溃的频率明显高了。。。
    莫名奇妙的卡顿或者假死。。。
    tang8888
        10
    tang8888  
       2014-12-05 10:37:32 +08:00
    学python,算了吧,你还是不如学nodejs.
    tang8888
        11
    tang8888  
       2014-12-05 10:39:06 +08:00
    不能在win linux mac全平台编程方便的语言都不是好语言,php优就优在易用性。
    luoyou1014
        12
    luoyou1014  
       2014-12-05 10:39:26 +08:00
    @LINAICAI phpstorm, pycharm 以及 rubyMine 都是同一家公司出的, 其实都是同一套系统。
    happywowwow
        13
    happywowwow  
       2014-12-05 10:46:54 +08:00   1
    不是特别懂写python需要ide是要用到啥功能
    都是sublime text写的
    LINAICAI
        14
    LINAICAI  
    OP
       2014-12-05 10:48:53 +08:00
    @happywowwow 新手总要慢慢习惯,刚开始我也不习惯vi和vim
    LINAICAI
        15
    LINAICAI  
    OP
       2014-12-05 10:49:37 +08:00
    @tang8888 py好像是全平台的吧
    66450146
        16
    66450146  
       2014-12-05 10:57:33 +08:00
    MySQLdb 简直翔一样……试试 redis?
    tini8
        17
    tini8  
       2014-12-05 10:59:55 +08:00
    @sarices
    @66450146
    MySQLdb哪方面有问题啊?我用的Django就是用的MySQLdb,没感觉到不好啊,当然Django也可以用其它的连接库
    tang8888
        18
    tang8888  
       2014-12-05 11:02:38 +08:00
    什么场合下都能用nosql来代替mysql吗。还有py在win下编程真他妈不方便,还有那个ruby.逼格太高。我等大众用不起。
    finab
        19
    finab  
       2014-12-05 11:07:55 +08:00
    @LINAICAI 10.9很稳定啊,我10.9没碰到过什么奇怪的问题。。10.10倒是有几个
    davidli
        20
    davidli  
       2014-12-05 11:17:45 +08:00
    可以试试 torndb , 比原来的MySQLdb好用一点, 但好像不支持 transaction.
    github 上有人提供过一个有 transaction 的修改版, 但找不到了.
    woshicixide
        21
    woshicixide  
       2014-12-05 11:27:02 +08:00
    不知道有什么爬虫的功能是python能实现而php实现不了
    mcfog
        22
    mcfog  
       2014-12-05 11:32:54 +08:00
    单说写爬虫的话 py 和 php 德行差不多吧

    单说写爬虫的话应该撸的是JS,不管是nodeJS和phantomJS做起爬虫来都各有优点

    cheerio request bluebird lodash-node四大金刚
    tini8
        23
    tini8  
       2014-12-05 11:34:23 +08:00
    @woshicixide python的pyquery、scrapy、还有国人开发的pyspider,成熟的生态是php没法比的。采集规模大了一般要用到非阻塞、多线程这些特性,php都难以支持
    lcqtdwj
        24
    lcqtdwj  
       2014-12-05 11:38:28 +08:00
    。。。怎么感觉连编程基本知识都不知道。。
    skybr
        25
    skybr  
       2014-12-05 11:38:57 +08:00
    @mcfog node用来写爬虫碰到逻辑复杂点的东西callback hell要搞死人的, 至于php, 异步和多线程这块根本没多少能用的东西, 拿来写爬虫不是个笑话么.
    karma
        26
    karma  
       2014-12-05 11:46:57 +08:00
    来搞ruby吧,三行搞定
    ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"
    curl -L https://get.rvm.io | bash -s stable
    rvm install 2.1.5
    之后 gem install 想咋搞咋搞..

    @luoyou1014 同意,php是最好的编程语言.
    roys
        27
    roys  
       2014-12-05 11:53:29 +08:00
    同意,php是最好的编程语言。
    ---->http://www.zhihu.com/question/21258280
    WildCat
        28
    WildCat  
       2014-12-05 11:57:31 +08:00
    @tang8888 ruby笑而不语。
    redguy6
        29
    redguy6  
       2014-12-05 12:50:03 +08:00 via Android
    确实是,Python 和Ruby 在易用性上差php远了。尤其是包管理器多此一举
    subpo
        30
    subpo  
    PRO
       2014-12-05 12:53:06 +08:00
    @karma 搞个ruby环境挺麻烦的,没有说的这么简单吧。
    xiaogui
        31
    xiaogui  
       2014-12-05 12:58:33 +08:00
    @subpo 很多问题都是墙造成了
    jianghu52
        32
    jianghu52  
       2014-12-05 13:04:54 +08:00
    个人建议,如果你做爬虫的话,还是用python2.x的版本吧。一方面网上的例子比较多。另外一方面,你也容易放在各种的saas上,我也是从php转python过去的,现在就有个小问题。不知道怎么的动不动就打了$符号在代码里面了。
    sarices
        33
    sarices  
       2014-12-05 14:03:54 +08:00
    @tini8 主要是安装太折腾了
    raincious
        34
    raincious  
       2014-12-05 14:11:36 +08:00
    @redguy6 你把Composer打进墙里了么?
    luoyou1014
        35
    luoyou1014  
       2014-12-05 14:15:05 +08:00
    @karma 你这句,真心看不出是不是反讽啊。

    ruby 的大坑比 python 少,小坑比python多。比如线上环境难配,总之,我已经放弃 python,业余ruby,工作php了。
    skybr
        36
    skybr  
       2014-12-05 14:26:07 +08:00
    @redguy6

    这嘲讽嘲的, 拥有最多包管理方案的世界最好语言旗下的包管理器pear/pear2/pecl/composer都哭晕在厕所了
    jarlyyn
        37
    jarlyyn  
       2014-12-05 14:28:22 +08:00
    感觉你这明显是系统的问题。
    换个linux发行版看看?
    根据我的经验,python的扩展包还是比php多的多的,只不过不是集中于web这一块。
    主php,玩nodejs python维护系统的路过。
    evlos
        38
    evlos  
       2014-12-05 14:35:45 +08:00 via iPhone
    https://github.com/PyMySQL/PyMySQL

    这个?用这个就不必装 mysqldb 啦
    Catstyle
        39
    Catstyle  
       2014-12-05 14:38:14 +08:00
    大蛇丸门徒前来瞻仰世界上最好的语言
    mengzhuo
        40
    mengzhuo  
       2014-12-05 14:48:43 +08:00
    >>> 折腾三天才搞定mac ox+pycharm+mysql
    珍爱生命,远离IDE
    Mac下请用homebrew

    >>> 我记得搞php那套就算是lnmp,也不过如此,但不同的是php的lnmp我直接在vps的linux上搞,安装软件包yum或者apt方便太多,反观mac ox下,py链接个mysql都要安装mysqldb模块,还各种版本问题节操砸了满地。
    那是因为你装了php-mysql驱动
    吐槽Python版本的话,想必你也没解决过php5环境下兼容php4的问题,木哈哈哈

    >>> 这里还有个问题想知道,py3.x版本之后怎么connect mysql?我看网上说mysql官方出了新的连接器不会用不了解啊。
    有一堆其他驱动具体请google
    LINAICAI
        41
    LINAICAI  
    OP
       2014-12-05 14:51:30 +08:00
    @mengzhuo 没错 感觉自己走了弯路
    lincanbin
        42
    lincanbin  
       2014-12-05 15:22:21 +08:00 via Android
    @mengzhuo PHP4是14年前发布的,PHP5也发布了10年了……
    mengzhuo
        43
    mengzhuo  
       2014-12-05 15:39:53 +08:00
    @lincanbin

    ()我第一家实习的公司(某BS)还真的有PHP4的代码
    lincanbin
        44
    lincanbin  
       2014-12-05 16:11:11 +08:00
    @mengzhuo 那些生产环境的旧代码是从不用升级运行环境的,更没有PHP5兼容PHP4一说。
    txlty
        45
    txlty  
       2014-12-05 17:10:21 +08:00
    如果有人打算用php写爬虫的话,那么:
    异步、多线程:可以用popen多开、curl_multi、pthreads、Swoole、Event,任选一种实现。
    文本分类、正文识别。可以基于SVM、FANN两个扩展实现。
    herozzm
        46
    herozzm  
       2014-12-05 17:39:46 +08:00
    lz为了爬虫,为什么不学golang?并发的特性非常适合用来做爬虫程序
    skybr
        47
    skybr  
       2014-12-05 19:01:41 +08:00
    @lincanbin php5一开始只是作为php6发布前的试验特性版本发布的, php5.2加了json支持才逐渐有人尝新型的拿来做项目, php5.3之后把原来的版本计划改了才大举迁移的, 虽然4和5发布间隔很短, 但实质上php4统治的时代挺长的.
    lincanbin
        48
    lincanbin  
       2014-12-05 19:31:37 +08:00
    @skybr php4生命周期是7年,发布7年后,也就是PHP5发布3年后,PHP官方宣布停止支持PHP4。这并不长。
    skybr
        49
    skybr  
       2014-12-05 20:03:35 +08:00
    @lincanbin 对, 按照官方的发布周期是能这么讲, 但问题是php5.2早期版本略坑, 导致php官方一边填坑一边在宣布停止4支持的一年后又发布了一个4.4.9给大伙儿救命(5.2宣布EOL后也玩过这么一出), 其后php4一方面靠一些发行版的内部维护, 一边靠着CI、cake、akelos和国产的fleaphp等支持php4的框架(其实经过5.2那出, 大家当时对5的稳定性都没太大信心)借rails东风大火在事实上又多活了两年, 真正开始普及5还得是5.3出了几个小版本稳定让大众重拾信心后了.
    redguy6
        50
    redguy6  
       2014-12-05 20:47:31 +08:00 via Android
    @skybr 嘿嘿,转了一圈,感觉还是php实在,用的人多,工作好找,教程多.... :)
    karma
        51
    karma  
       2014-12-05 21:32:31 +08:00
    @subpo 差不多吧,前提是装了xcode或者command line tool。另外其实主要看手熟不熟吧,多年前自己装个rails的环境要搞一下午,现在搞一套平时用的技术栈真的只是网速问题。
    konakona
        52
    konakona  
       2014-12-06 03:53:31 +08:00
    osx折腾开发有一个妙招:
    brew install
    给予brew这个安装包(自己搜搜下)想要安装什么东西都不是问题了……
    LINAICAI
        53
    LINAICAI  
    OP
       2014-12-08 01:14:44 +08:00
    @redguy6 确实php的多, 其实大多数老板甚至是cto都愿意招php,毕竟如果换人干活也好招啊,你说一个项目py搞好后原开发跑了,那你都花多长时间招个py?
    上面的说法 也是针对一些老牌传统的it企业,当然现在技术人员学py的也不少了,那些近些年崛起的公司有着风投和天使投资大把大把的资金和优美的工作环境倒还是很容易招人,难为了老旧公司吃不消这个技术改造~
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2637 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 15:06 PVG 23:06 LAX 08:06 JFK 11:06
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86