Setup Python 开发环境和IPython的基本使用

  • 时间:4年前
  • 浏览:2785次
  • 网赌被黑找腾龙D哥出黑【微信:gm4927 QQ:861122225】

    目录

    前言

    常言道:工欲善其事,必先利其器。编程语言的学习是久远的,一步一脚印。现在从最基础的开发环境的部署开始,开启我们Python之路吧。在大多数Linux的发行版中都会预安装Python的编译环境来满足和支持系统内部软件的运行。Ubuntu Kylin 也预安装了Python-2.7.6,输入python指令就可以进入Python自带的Shell。但是此PythonShell一般用于调试Python脚本,其功能远不能满足程序开发。下面我会介绍Python交互式Shell–IPython的安装是基本使用。

    软件准备

    • 系统
      • UbuntuKylin 14.04
    • 软件
      • IPython-4.0.0
      • Python-2.7.6

    Python交互式Shell

    1.为Python Shell添加补全功能

    方法一:导入tab.py自动补全模块
    建立自定义的Python workspace,在于个人的工作习惯,将程序的代码规范的管理起来。
    a). 创建workspace directory,并workspase目录加入PATH环境变量。
    查看原有的$PATH
    原有的PATH Setup Python 开发环境和IPython的基本使用 出黑方法 1

    mkdir /usr/local/src/pyScript
    #在profile中编辑环境变量PATH
    vim /etc/profile
        PATH=${PATH}:/usr/local/src/pyScript
    #重新加载profile的环境变量
    source /etc/profile

    确认workspase目录加入到了PATH
    增加环境变量 Setup Python 开发环境和IPython的基本使用 出黑方法 2
    b). 使用别名alias快捷进入workspase

    alias py='cd /usr/local/src/pyScript/'
    vim ~/.bashrc
        # add some aliases by maunal.
        alias py='cd /usr/local/src/pyScript'
    source ~/.bashrc

    实现永久增加Alias

    root@Jmilk:~# py
    root@Jmilk:/usr/local/src/pyScript# 

    c). 创建自动补全tab Module

    vim /usr/local/src/pyScript/tab.py

    tab.py代码如下:

    #!/usr/bin/env python
    # python startup file
    '''Python 自动补全功能脚本tab.py'''
    import sys
    import readline
    import rlcompleter
    import atexit
    import os
    # tab completion
    readline.parse_and_bind('tab: complete')
    # history file
    histfile = os.path.join(os.environ['HOME'], '.pythonhistory')
    try:
        readline.read_history_file(histfile)
    except IOError:
        pass
    atexit.register(readline.write_history_file, histfile)
    del os, histfile, readline, rlcompleter

    这时候在执行python指令进入交互式Shell后,再执行import tab带入tab模块即可以实现自动补全功能。

    root@Jmilk:/usr/local/src/pyScript# python
    Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
    [GCC 4.8.2] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import tab
    >>> import commands
    >>> commands.get
    commands.getoutput(        commands.getstatusoutput(
    commands.getstatus(    
    #commands Module是使用Bash指令的模块    

    需要注意的是:import tab指令需要在tab.py文件的当前目录下执行,而且每次登入到PythonShell时都需要执行一次,非常的不方便。可以通过修改~/.bashrc文件来实现自动带入tab Module。

    vim ~/.bashrc
        #Add the content as below.
        export PYTHONSTARTUP=/usr/local/src/pyScript/tab.py

    重新打开Bash实现自动导入tab Module。

    2.IPython-4.0.0

    Python的优点之一是其交互式的解析器,通过Shell可以做到所见即所得的得到快速的及时执行结果,便于调试。而IPython-4.0.0则将Python这一个优点更加不遗余力的发挥出来。IPython是一个功能强大且实用性强的交互式Shell,支持自动补全、自动缩进、Bash指令、内置函数、历史记录等实用性功a能。
    安装IPython有多种方法和工具,例如:easy_install、pip、apt-get、源码安装等,甚至IPython可以在使用源码不安装的情况下使用。下面由简易到复杂的列出:
    a). 使用系统自身软件管理器
    Ubuntu:

    apt-get install ipython

    默认安装路径为:/usr/share/python-support/ipython
    二进制文件路径:/usr/bin/ipython

    RHEL:

    yum list | grep ipython 
    yum install -y ipython

    b). 使用Python库进行安装:
    首先需要安装pip或easy_install工具

    easy_insall ipython

    c). 使用源码包安装
    IPython下载传送门:
    https://pypi.python.org/pypi/ipython

    tar zxvf ipython-4.0.0.tar.gz -C /usr/local/
    cd ipython-4.0.0
    python setup.py install

    安装完成后键入ipython进入新的交互式Shell

    ipython Setup Python 开发环境和IPython的基本使用 出黑方法 3
    自此可以正式开始你的Python 学习之旅

    IPython功能和特性基础

    1.可直接使用部分的Bash指令

    In [3]: cd /root/
    /root
    
    In [4]: pwd
    Out[4]: u'/root'
    
    In [5]: ll
    总用量 44
    -rw-r--r-- 1 root  266  612 11:43 checkPort.py
    drwxr-xr-x 2 root 4096  829 16:56 Desktop/
    drwxr-xr-x 2 root 4096  826 07:07 python/
    -rw-r--r-- 1 root   59  618 15:51 ttx.log
    drwxr-xr-x 2 root 4096  826 02:44 公共的/
    drwxr-xr-x 2 root 4096  826 02:44 模板/
    drwxr-xr-x 2 root 4096  826 02:44 视频/
    drwxr-xr-x 2 root 4096  829 16:52 图片/
    drwxr-xr-x 2 root 4096  826 02:44 文档/
    drwxr-xr-x 4 root 4096  829 19:30 下载/
    drwxr-xr-x 2 root 4096  826 02:44 音乐/

    2.别名%alias(语法有别于Bash)

    In [29]: %alias py cd /usr/local/src/pyScript/
    
    In [30]: py
    
    In [31]: pwd
    Out[31]: u'/usr/local/src/pyScript'

    注:使用%unalias可以删除别名,而且%alias 定义的别名只在本次会话中有效,需要永久保存别名需要使用%store函数。

    In [124]: %store py

    如果忘记了定义的别名名称,可以使用选项 -r 来回复上次会话定义的别名。

    3.支持参数%s,善用于脚本上

    In [42]: %alias nst netstat -lpntu | grep "%s"
    
    In [43]: nst 80
    tcp6       0      0 :::80                   :::*                    LISTEN      2820/apache2    

    4.将IPython中的变量传递到Bash中

    In [64]: ap = "80"
    
    In [65]: nst $ap
    tcp6       0      0 :::80                   :::*                    LISTEN      2820/apache2    

    5.特殊符号

    a). 利用’ ! ‘实现直接执行Shell命令

    In [68]: !whoami
    root
    
    In [69]: !date
    2015年 08月 29日 星期六 21:43:38 CST

    b). 利用’ !! ‘将执行Bash指令的结果以列表序列的形式存储到Out[]中,便于作后期数据处理

    In [86]: !!cat /etc/passwd | awk -F ":" '{print $1}'
    Out[86]: 
    ['root',
     'daemon',
     'bin',
     'sys',
     'sync',
     'games',
     'man',
     'lp',
     'mail',
     'news',
     'uucp',
     'proxy',
     'www-data',
     'backup',
     'list',
     'irc',
     'gnats',
     'nobody',
     'libuuid',
     'syslog',
     'messagebus',
     'usbmux',
     'dnsmasq',
     'avahi-autoipd',
     'kernoops',
     'rtkit',
     'saned',
     'whoopsie',
     'speech-dispatcher',
     'avahi',
     'lightdm',
     'colord',
     'hplip',
     'pulse',
     'jmilk',
     'stack',
     'memcache',
     'sshd',
     'postgres',
     'rabbitmq',
     'mysql',
     'haproxy',
     'libvirt-qemu',
     'libvirt-dnsmasq',
     'guest-5LawJh']
    
    In [87]: Out[86][1]
    Out[87]: 'daemon'

    c). 利用” _ “获取上一次Out[]的结果,实现快速简便的处理数据

    In [88]: userName = _
    
    In [89]: userName
    Out[89]: 'daemon'

    6.显示历史记录和查看指令详细信息

    In [100]: %hist -n
       1: import commands
       .
       .
      74: !!cat /etc/passwd | awk -F ":" '{print $1}'
       .
       .
     100: %hist -n
    In [101]: %edit 74

    %edit number指令,默认使用vi显示number匹配的History指令的详细信息,对测调试程序有很大的帮助。例如查看并可编辑上述第74条指令:

    get_ipython().getoutput(u'cat /etc/passwd | awk -F ":" \'{print $1}\'')

    执行后会在/tmp目录下创建目录来存放编辑后的文件

    7.定义宏

    In [118]: user = ['jmilk','fan']
    
    In [119]: for name in user: print '\033[31;1mUser name is %s \033[0m' % nameUser name is jmilk 
    User name is fan 
    
    In [120]: %macro list_user 119
    Macro `list_user` created. To execute, type its name (without quotes).
    === Macro contents: ===
    for name in user: print '\033[31;1mUser name is %s \033[0m' % name
    
    In [121]: list_user
    User name is jmilk 
    User name is fan 

    以上只是IPython的冰山一角,随着熟练的使用IPython,可以更便捷高效的编写Python程序,在往后的博文中,我们会在学习的过程中更加深入去发掘IPython的实战应用

    Jmilk

    网赌被黑找腾龙D哥出黑【微信:gm4927 QQ:861122225】

    留言反馈

    网赌被黑找腾龙D哥出黑【微信:JLYL78999 QQ:978107219】鲁ICP备13008445号-3||Theme by Cn+网络, Soft by ZBlogPHP
  • 网赌被黑