ipython和python怎么用_Setup Python 开发环境和IPython的基本使用

目录

前言

常言道:工欲善其事,必先利其器。编程语言的学习是久远的,一步一脚印。现在从最基础的开发环境的部署开始,开启我们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

mkdir /usr/local/src/pyScript

#在profile中编辑环境变量PATH

vim /etc/profile

PATH=${PATH}:/usr/local/src/pyScript

#重新加载profile的环境变量

source /etc/profile

确认workspase目录加入到了PATH

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

tar zxvf ipython-4.0.0.tar.gz -C /usr/local/

cd ipython-4.0.0

python setup.py install

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

自此可以正式开始你的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 6月 12 11:43 checkPort.py

drwxr-xr-x 2 root 4096 8月 29 16:56 Desktop/

drwxr-xr-x 2 root 4096 8月 26 07:07 python/

-rw-r--r-- 1 root 59 6月 18 15:51 ttx.log

drwxr-xr-x 2 root 4096 8月 26 02:44 公共的/

drwxr-xr-x 2 root 4096 8月 26 02:44 模板/

drwxr-xr-x 2 root 4096 8月 26 02:44 视频/

drwxr-xr-x 2 root 4096 8月 29 16:52 图片/

drwxr-xr-x 2 root 4096 8月 26 02:44 文档/

drwxr-xr-x 4 root 4096 8月 29 19:30 下载/

drwxr-xr-x 2 root 4096 8月 26 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值