zoukankan      html  css  js  c++  java
  • script python / TurboGears / Django / Pylons / ZOPE

    s

    《利用Python进行数据分析·第2版》

    https://seancheney.gitbook.io/python-for-data-analysis-2nd/

    https://www.jianshu.com/p/3bcd7060700a

    下载本书:http://www.jianshu.com/p/fad9e41c1a42

    GitHub(欢迎提pull request,GitHub上的md文件可以用来自制电子书,pdf、mobi、epub格式的都行):
    https://github.com/iamseancheney/python_for_data_analysis_2nd_chinese_version

    GitBook(有锚点功能):
    https://seancheney.gitbook.io/python-for-data-analysis-2nd/

    下载本书代码:https://github.com/wesm/pydata-book(建议把代码下载下来之后,安装好Anaconda 3.6,在目录文件夹中用Jupyter notebook打开)


    本书是2017年10月20号正式出版的,和第1版的不同之处有:

    • 包括Python教程内的所有代码升级为Python 3.6(第1版使用的是Python 2.7)
    • 更新了Anaconda和其它包的Python安装方法
    • 更新了Pandas为2017最新版
    • 新增了一章,关于更高级的Pandas工具,外加一些tips
    • 简要介绍了使用StatsModels和scikit-learn

    对有些内容进行了重新排版。(译者注1:最大的改变是把第1版附录中的Python教程,单列成了现在的第2章和第3章,并且进行了扩充。可以说,本书第2版对新手更为友好了!)

    (译者注2:毫无疑问,本书是学习Python数据分析最好的参考书(另一本不错的是《Pandas Cookbook》《Pandas 1.x Cookbook · 第二版》 )。本来想把书名直接译为《Python数据分析》,这样更简短。但是为了尊重第1版的翻译,考虑到继承性,还是用老书名。这样读过第一版的老读者可以方便的用之前的书名检索到第二版。作者在写第二版的时候,有些文字是照搬第一版的。所以第二版的翻译也借鉴copy了第一版翻译:即,如果第二版中有和第一版相同的文字,则copy第一版的中文译本,觉得不妥的地方会稍加修改,剩下的不同的内容就自己翻译。这样做也是为读过第一版的老读者考虑——相同的内容可以直接跳过。)


    获取python的版本号

    http://hi.baidu.com/huangboxiang/blog/item/2377c3ca99d826f552664fde.html

    1、在Linux命令行底下可以通过python -V查看python版本号
    [root@wcsdb2 ~]# python -V 2>&1 | awk '{print $2}'

    2、直接在命令行底下输入
    [root@wcsdb2 ~]$python
    则返回以下内容,也可以“肉眼”获得python的版本号
    Python 2.5.1 (r251:54863, Apr 28 2009, 18:32:15) 
    [GCC 3.4.5 20051201 (Red Hat 3.4.5-2)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>>

    3、通过python的platform模块获取版本号
    [root@wcsdb2 ~]$python -c 'import platform; print platform.python_version()'
    2.5.1

    4、通过python的sys模块获取版本号
    $[root@wcsdb2 ~]$python -c 'import sys; print sys.version' 2>&1
    2.5.1 (r251:54863, Apr 28 2009, 18:32:15) 
    [GCC 3.4.5 20051201 (Red Hat 3.4.5-2)]
    可以通过提取相应字段获取版本号
    $[root@wcsdb2 ~]$python -c 'import sys; print sys.version' 2>&1 | awk '$1~/[0-9]\.[0-9].*/{print $1}'

    用Python建立最简单的web服务器

    http://www.cnblogs.com/xuxn/archive/2011/02/14/build-simple-web-server-with-python.html

    利用Python自带的包可以建立简单的web服务器。在DOS里cd到准备做服务器根目录的路径下,输入命令:

    • python -m Web服务器模块 [端口号,默认8000]

    例如:

    • python -m SimpleHTTPServer 8080

    然后就可以在浏览器中输入

    • http://localhost:端口号/路径

    来访问服务器资源。 
    例如:

    • http://localhost:8080/index.htm(当然index.htm文件得自己创建)

    其他机器也可以通过服务器的IP地址来访问。

    这里的“Web服务器模块”有如下三种:

    • BaseHTTPServer: 提供基本的Web服务和处理器类,分别是HTTPServer和BaseHTTPRequestHandler。
    • SimpleHTTPServer: 包含执行GET和HEAD请求的SimpleHTTPRequestHandler类。
    • CGIHTTPServer: 包含处理POST请求和执行CGIHTTPRequestHandler类。

    天外飞仙级别的Linux Shell命令

    http://www.bitscn.com/os/linux/201008/190267.html

    2.以HTTP方式共享当前文件夹的文件 默认端口为8000,可自定义修改为80端口

    $ python -m SimpleHTTPServer

    这命令启动了Python的SimpleHTTPServer模块,考虑到Python在绝大多数的Linux发行版当中都默认安装,所以这个命令很可能是最简单的跨平台传文件的方法。

    命令执行后将在本机8000端口开放HTTP服务,在其他能访问本机的机器的浏览器打开ttp://ip:8000即打开一个目录列表,点击即可下载。

    非常简单的Python HTTP服务

    http://renxiangzyq.iteye.com/blog/492073

    http://www.2cto.com/kf/201106/93738.html

    http://lvqingboy-163-com.iteye.com/blog/794804

    RedHat 系统开启pyhton http 服务

    [root@B2Cmonitor soft]# which python
    /usr/bin/python
    [root@B2Cmonitor soft]# whereis python
    python: /usr/bin/python2.4 /usr/bin/python /usr/lib/python2.4 /usr/include/python2.4 /usr/share/man/man1/python.1.gz
    [root@B2Cmonitor soft]# /usr/bin/python -V
    Python 2.4.3

    [root@B2Cmonitor soft]# python -m SimpleHTTPServer

    [root@B2Cmonitor soft]# python -m SimpleHTTPServer 80

    苹果系统开启python http 服务

    lindowsmatoMacBook-Pro:~ lindows$ which python
    /usr/bin/python
    lindowsmatoMacBook-Pro:~ lindows$ whereis python
    /usr/bin/python
    lindowsmatoMacBook-Pro:~ lindows$ /usr/bin/python -V
    Python 2.6.1
    lindowsmatoMacBook-Pro:~ root# python -m SimpleHTTPServer 80
    Serving HTTP on 0.0.0.0 port 80 ...

    如果你只想让这个HTTP服务器服务于本地环境,那么,你需要定制一下你的Python的程序,下面是一个示例:

    import sys
    import BaseHTTPServer
    from SimpleHTTPServer import SimpleHTTPRequestHandler
    HandlerClass = SimpleHTTPRequestHandler
    ServerClass  = BaseHTTPServer.HTTPServer
    Protocol     = "HTTP/1.0"

    if sys.argv[1:]:
        port = int(sys.argv[1])
    else:
        port = 8000
    server_address = (127.0.0.1, port)

    HandlerClass.protocol_version = Protocol
    httpd = ServerClass(server_address, HandlerClass)

    sa = httpd.socket.getsockname()
    print "Serving HTTP on", sa[0], "port", sa[1], "..."
    httpd.serve_forever()
    注意:所有的这些东西都可以在 Windows 或 Cygwin 下工作。

    http://www.inatv.com/admin/junshi/upimages/200773092430238.jpg

    Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny2 with Suhosin-Patch mod_python/3.3.1 Python/2.5.2 mod_ssl/2.2.9 OpenSSL/0.9.8g Resin/3.1.8 Server at www.inatv.com Port 80

    Python Tutorial

    http://www.woodpecker.org.cn:9081/projects/pythontutorial/py2.5/html/tut/tut.html

    一位大牛整理的Python资源

    http://gaokun.iteye.com/blog/266878

    http://onlypython.group.iteye.com/group/topic/7588

    1. 概述 

    “工欲善其事,必先利其器”,如果说编程是程序员的手艺,那么IDE就是程序员的吃饭家伙了。 

    IDE的全称是Integration Development Environment(集成开发环境),一般以代码编辑器为核心,包括一系列周边组件和附属功能。一个优秀的IDE,最重要的就是在普通文本编辑之外, 提供针对特定语言的各种快捷编辑功能,让程序员尽可能快捷、舒适、清晰的浏览、输入、修改代码。对于一个现代的IDE来说,语法着色、错误提示、代码折 叠、代码完成、代码块定位、重构,与调试器、版本控制系统(VCS)的集成等等都是重要的功能。以插件、扩展系统为代表的可定制框架,是现代IDE的另一 个流行趋势。 

    IDE并非功能越多越好,因为更多的功能往往意味着更大的复杂度,这不但会分散程序员本来的精力,而且还可能带来更多的错误。只要基本功能满足需要,符合自己使用习惯的IDE才是最好的IDE。程序员的逻辑永远是:用最合适的工具做最合适的事情。 

    正因为此,比起大而全的IDE,以单纯的文本编辑器结合独立的调试器、交互式命令行等外部小工具也是另一种开发方式。由于python本身的简洁,因此在写小的代码片段以及通过示例代码学习时这种方式尤其适合。 

    2. 常用IDE简介 

    这里简单介绍Python程序员中最流行的若干IDE。 

    2.1. 内置IDE 

    Python的各个常见发行版都有内置的IDE,虽然它们的功能一般不够强大完整,但简便易得就是最大的优势。 对于初学者来说,它们也是上手的最好选择,可以让你更专注于语言本身而不会被繁复的IDE分散精力。 

    2.1.1. IDLE 

    IDLE是Python标准发行版内置的一个简单小巧的IDE,包括了交互式命令行、编辑器、调试器等基本组件,足以应付大多数简单应用。 IDLE是用纯Python基于Tkinter编写的的,最初的作者正是Python之父Guido van Rossum本人。 

    http://hkn.eecs.berkeley.edu/~dyoo/python/idle_intro/index.html -- 《One Day of IDLE Toying》,图文并茂的入门文章 

    http://hkn.eecs.berkeley.edu/~dyoo/python/idle_intro/IDLE-chinese.htm -- 《One Day of IDLE Toying》中文版 

    2.1.2. PythonWin 

    PythonWin是Python Win32 Extensions(半官方性质的python for win32增强包)的一部分,也包含在ActivePython的windows发行版中。如其名字所言,只针对win32平台。 

    总体来说,PythonWin是一个增强版的IDLE,尤其是易用性方面(就像windows本身的风格一样)。除了易用性和稳定性之外,(简单的)代码完成和更强的调试器都是相对于IDLE的明显优势。 

    Python Win32 Extensions的下载页:http://sourceforge.net/projects/pywin32/ 

    ActivePython的主页:http://www.activestate.com/Products/ActivePython/ 

    2.1.3. MacPython IDE 

    MacPythonIDE是Python的Mac OS发行版内置的IDE,可以看作是PythonWin的Mac对应版本,由Guido的哥哥Just van Rossum编写。 

    2.2. Emacs和Vim 

    Emacs和Vim号称是这个星球上最强大(以及第二强大)的文本编辑器,对于许多程序员来说是万能IDE的不二(三?)选择。 比起同类的通用文本编辑器如UltraEdit,Emacs和Vim由于扩展功能的强大,可以针对性地搭建出更为完整便利的IDE。 

        * 

          Emacs -- Emacs及python-mode的简介 
        * 

          Vim -- Vim 通用编辑环境使用技巧推介 
        * 

          PyIDEguider、VimPython、VimPythonTDD -- 社区内几篇介绍在Vim环境下进行Python开发的文章 

    虽然二者掌握之后可以说是终身受益,但学习曲线都比较陡峭。由于历史原因,它们的设计理念都是基于纯ascii字符环境,GUI相对来说不是支持 的重点,大量使用快捷键才能带来最大的便利。对于初学者来说,相对而言Vim更简洁一些,但Emacs的GUI与一般编辑器的习惯更接近些。 

    2.3. Eclipse + PyDev 

    Eclipse是新一代的优秀泛用型IDE,虽然是基于Java技术开发的,但出色的架构使其具有不逊于Emacs和Vim的可扩展性,现在已经成为了许多程序员最爱的瑞士军刀。 

        * 

          Eclipse -- Eclipse集成开发环境使用说明,简略介绍了Eclipse插件开发的基础知识 

    PyDev是Eclipse上的Python开发插件中最成熟完善的一个,而且还在持续的活跃开发中。除了 Eclipse平台提供的基本功能之外,PyDev的代码完成、语法查错、调试器、重构等功能都相当出色,可以说在开源产品中是最为强大的一个,许多贴心 的小功能也很符合编辑习惯,用起来相当顺手。 

    速度和资源占用是致命伤,在低配置机器上跑起来比较吃力。 

        * 

          PyDev -- PyDev开发环境简介 

    Eclipse的主页:http://www.eclipse.org/ 

    PyDev的主页:http://pydev.sourceforge.net/ 

    PyDev使用手册:http://www.fabioz.com/pydev/manual_101_root.html (Eng) 此入门手册从安装到开发过程中的使用,并且是图文显示,推荐大家使用. 

    技术开发参考: 用 Eclipse,PyDev 和 Ant 进行 Python 开发,http://www-128.ibm.com/developerworks/cn/opensource/os-ecant/index.html 

    2.4. UliPad 

    UliPad是国内知名pythoner,也是PythonCN社区核心成员limodou开发的IDE。 

    2.5. SPE (Stani's Python Editor) 

    很有特色的一个轻量级python IDE,功能很全面而不失小巧轻便,特别适合写小的脚本。 

    即时生成代码的UML类图是独此一家的功能,此外还特别注重与外部工具的集成。例如,集成了wxGlade作为所见即所得的GUI开发环境,集成了Winpdb作为调试器,甚至还能与3D建模工具Blender集成。 

    SPE没有管理Project的概念,这样开发多文件多目录组成的项目时会不太方便。此外界面设计相对来说不够细致,也算是瑕疵。 

    SPE的主页:http://stani.be/python/spe/ 

    2.6. Boa Constructor 

    专为快速开发基于wxPython的GUI程序而设计的IDE,支持“所见即所得”的控件拖放式开发,被称为Python世界中的Delphi。 

    曾被sourceforge推选为"Project of the Month",不过最近开发速度趋于缓慢。 

    Boa Constructor的主页:http://boa-constructor.sourceforge.net/ 

    2.7. Eric3 

    Eric3的主页:http://www.die-offenbachs.de/detlev/eric3.html 

    2.8. WingIDE 

    Wingware公司开发的商业产品,总体来说是目前最为强大专业的Python IDE,开源项目可以申请到免费的license。 

    最大的缺点和PyDev一样,速度较慢,资源占用多。 

    Wingware的主页:http://wingware.com/ 

    2.9. Komodo 

    另一个优秀的商业产品,由ActiveState公司开发,是一个泛用的脚本语言IDE,除了Python外还支持javascript、perl、php、ruby、tcl等多种语言。 

    Komodo的主页:http://www.activestate.com/Products/Komodo/ 

    2.10. Textmate 

    Textmate是Mac OSX平台的Cocoa原生程序,类似UltraEdit。以灵活的Bundles和Code Snippets著称,支持大多数的脚本语言。Rails的全体开发团队都用这个Editor。类似Emacs/vi,需要配合ctags分析 python代码结构,可以很容易的做unittest等功能。需要特别指出的是它对于Django的model和template、以及Zope都有专 门的支持。 

    Textmate的主页:http://macromates.com/ 

    2.11. 综合比较 

    swordsp的个人建议: 

        * 

          初学者首选IDLE / PythonWin / MacPython 
        * 

          Emacs / Vim / Eclipse+PyDev是强大且通用的解决方案,取决于你更熟悉哪个环境,如果都没有基础,更推荐Eclipse+PyDev。 
        * SPE是纯Python实现的简洁型IDE中功能最完善的,写小脚本的时候很方便。 
        * 

          Boa长处在基于wxPython的快速GUI开发。 
        * 如果有条件选择商业工具,WingIDE或者Komodo都是优秀的产品。 

    其它比较Python IDE的文章: 

    http://www-128.ibm.com/developerworks/cn/linux/sdk/python/charm-14/index.html 

    "Charming Python"专栏作者David Mertz的测评文章,写于2001年,许多内容已经过于陈旧了,但仍有参考价值。 

    http://spyced.blogspot.com/2005/09/review-of-6-python-ides.html -- review-of-6-python-ides.html 

    http://spyced.blogspot.com/2006/02/pycon-python-ide-review.html -- pycon-python-ide-review.html 

    较新的两篇Python IDE测评文章(原地址需代理才能访问,后一个附件链接是本地的备份),分别比较了PyDev、Eric3、Boa Constructor、BlackAdder、Komodo、WingIDE、SPE。 

    3. IDE之外的工具 

    3.1. 交互式命令行(interactive console) 

    3.1.1. IPython 

    IPython的主页:http://ipython.scipy.org/ 

    3.2. 调试工具(Debugger) 

    3.2.1. Winpdb 

    Winpdb的主页:http://www.digitalpeers.com/pythondebugger/ 

    3.3. 其它支持 Python 的编辑器 

    3.3.1. Leo 

    基于全新的Literate Programming(文学化编程)理念的开发工具,详细的介绍参见:LeoEnvironment 

    Leo的主页:http://webpages.charter.net/edreamleo/front.html 

    3.3.2. Bluefish 

    Bluefish 通常被认为是一个类似 Homesite 的网页编辑器,但事实上它不仅如此。它应该是一个通用的文本编辑器,支持 C、PHP、Python、Ruby、Perl、Java、Shell、Tcl 等许多种编程语言,支持语法高亮、自动换行、自动关闭 HTML 标签等,可同时编辑多个文档。 

    Bluefish 当然不能算是一款 Python 的 IDE 工具,但如果做 Web 相关的开发( DjanGo、TurboGears 等),用它来写程序显然很方便。而且 Bluefish 相当友好,基本上不用学就会用,可以使我等菜鸟尽快将精力转移到 Python 的学习上来。 

    Bluefish 官方站在 http://bluefish.openoffice.nl/index.html 目前可以运行在大多数类 UNIX 操作系统上。

    TurboGears

    http://wiki.woodpecker.org.cn/moin/TurboGears

    g_gear     turbogearsparts

    ::-- gasolin 2006-10-15 更新

     

    1. TurboGears

    • TurboGears -- 提供网页前端到后端整合的网站框架

    python 上有无数网页开发模组可选择. 随着选择的增加, 要挑选合适的模组会花上开发者宝贵的时间精力, 众多选项的负面效果开始让 python 开发者感到喘不过气.

    你可以想像 TurboGears 就是 python 网页开发界的 Ubuntu 发布套件 (Linux Distribution), 整合各种TurboGears 推荐的开源模组, 提供简单易用的介面与一致的系统体验.

     

    1.1. 特性

    • 用最好的开源组件 (Best of Breed)
    • 互动式开发
    • 体验自由组合的乐趣

     

    1.1.1. MVC

    TurboGears 使用 MVC 的方式组织网站, 提供网页框架快速生成工具, 开发中自动即时重载的网页伺服器,

    • 使用 easy_install 命令就可以从 TurboGears Cogbin 中轻易扩展功能.

    • 组成 TurboGears 的组件主要可分为

      1. ORM (面向对象的方法存取资料库, SQLObject 或 SQLAlchemy)
      2. Template 样板系统 (目前已知支援 10 种以上样板包含 Django Template, kid)
      3. 控制器核心 (CherryPy )

      4. AJAX 库 (各种 Javascript 库, Mochikit)

    TurboGears 现也已提供网站程式中最常用的网页认证模组, 网页注册模组, 网页发信模组等.

    TurboGears 使用 widgets, 從系統(而非样板)支持网页元素重用. (各种样板系统都可以用来开发 网页元素).

    网页工具箱 ToolBox 里面包含设计/维护网站资料库的工具, 线上多国语言翻译工具等.

    TurboGears 大部分组件都可 自由替换

     

    1.1.2. 全文搜索

     

    1.2. 官方文档

    Rapid Web Applications with TurboGears

    1.3. 体验

     

    1.3.1. 安装

    网站 下载 tgsetup.py, 确认机器连在网路上, 在命令列里执行

    $ python tgsetup.py

    TurboGears 即自动从网路上下载必要的安装档案.

    安装完成后,如果使用数据库:MYSQL,SQLITE等等还要下载相关的DRIVER,不知道那个组件还要python-profiler

     

    1.4. 开发

    20分钟wiki [原文 ] (./)


    20分钟wiki指南/1

    20分钟wiki指南/2

    20分钟wiki指南/3

    20分钟wiki指南/4


     

    Lazy’s world [lazy的体验]


     

    用 mochikit 实现 Ajax 导航

    catwalk 小探

    利用 widgets.Form 实现日历表单

    end

  • 相关阅读:
    NDCG
    卷积核
    高斯核函数映射到无限维
    《Towards Knowledge-Based Recommender Dialog System》阅读笔记
    Pytorch官方教程:含注意力的seq2seq2机器翻译
    cad 已知拱高弦长求弧长
    MySQL直接将数据库的文件夹从服务器复制到本地,打开表提示需要修复 “is marked as crashed and should be repaired ”
    CSS小技巧:利用border实现三角形箭头
    完美解决ERROR 1064 (42000): You have an error in your SQL syntax; check the manual…
    Java 理论与实践:正确使用 Volatile 变量
  • 原文地址:https://www.cnblogs.com/lindows/p/14390528.html
Copyright © 2011-2022 走看看