Setup Python 开发环境和IPython的基本使用
来源:互联网 发布:墨脱公路沥青路面数据 编辑:程序博客网 时间:2024/05/22 08:03
目录
- 目录
- 前言
- 软件准备
- Python交互式Shell
- 为Python Shell添加补全功能
- IPython-400
- IPython功能和特性基础
- 可直接使用部分的Bash指令
- 别名alias语法有别于Bash
- 支持参数s善用于脚本上
- 将IPython中的变量传递到Bash中
- 特殊符号
- 显示历史记录和查看指令详细信息
- 定义宏
前言
常言道:工欲善其事,必先利其器。编程语言的学习是久远的,一步一脚印。现在从最基础的开发环境的部署开始,开启我们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中编辑环境变量PATHvim /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:~# pyroot@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 sysimport readlineimport rlcompleterimport atexitimport os# tab completionreadline.parse_and_bind('tab: complete')# history filehistfile = os.path.join(os.environ['HOME'], '.pythonhistory')try: readline.read_history_file(histfile)except IOError: passatexit.register(readline.write_history_file, histfile)del os, histfile, readline, rlcompleter
这时候在执行python指令进入交互式Shell后,再执行import tab带入tab模块即可以实现自动补全功能。
root@Jmilk:/usr/local/src/pyScript# pythonPython 2.7.6 (default, Mar 22 2014, 22:59:56) [GCC 4.8.2] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> import tab>>> import commands>>> commands.getcommands.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.0python setup.py install
安装完成后键入ipython进入新的交互式Shell
自此可以正式开始你的Python 学习之旅
IPython功能和特性基础
1.可直接使用部分的Bash指令
In [3]: cd /root//rootIn [4]: pwdOut[4]: u'/root'In [5]: ll总用量 44-rw-r--r-- 1 root 266 6月 12 11:43 checkPort.pydrwxr-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.logdrwxr-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]: pyIn [31]: pwdOut[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 80tcp6 0 0 :::80 :::* LISTEN 2820/apache2
4.将IPython中的变量传递到Bash中
In [64]: ap = "80"In [65]: nst $aptcp6 0 0 :::80 :::* LISTEN 2820/apache2
5.特殊符号
a). 利用’ ! ‘实现直接执行Shell命令
In [68]: !whoamirootIn [69]: !date2015年 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]: userNameOut[89]: 'daemon'
6.显示历史记录和查看指令详细信息
In [100]: %hist -n 1: import commands . . 74: !!cat /etc/passwd | awk -F ":" '{print $1}' . . 100: %hist -nIn [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 119Macro `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' % nameIn [121]: list_userUser name is jmilk User name is fan
以上只是IPython的冰山一角,随着熟练的使用IPython,可以更便捷高效的编写Python程序,在往后的博文中,我们会在学习的过程中更加深入去发掘IPython的实战应用。
Jmilk
- Setup Python 开发环境和IPython的基本使用
- 安装ipython时python setup.py egg_info错误的解决办法
- linux/ubuntu下IPython、IPython Notebook(jupyter)的安装和基本使用
- Ubuntu环境下IPython的搭建和使用
- 【python】IPython Notebok的使用
- 安装和使用python的setup tools
- IPython :一个交互式计算和开发环境
- ipython 最好用的交互python环境
- win7搭建Python开发环境(下篇--安装pip和ipython解释器)
- win7搭建Python开发环境(下篇--安装pip和ipython解释器)
- Linux环境安装IPython配置python开发环境
- IPython开发环境设置
- Android NDK的开发环境搭建和基本使用
- Android 开发环境搭建和基本的使用
- ipython环境的搭建
- python开发环境配置和简单的使用
- python开发环境配置和简单的使用
- anaconda 和 python 安装;jupyter 开发环境的使用
- python字符串操作
- Apriori算法及C++实现
- 最小生成树伪代码模板
- python常用函数
- Android Application对象必须掌握的七点
- Setup Python 开发环境和IPython的基本使用
- Java中为什么finally语句块一定会被执行?
- hdoj 2111 Saving HDU 【贪心】
- 解决U盘1KB快捷方式病毒(暴风一号)方法
- servlet路径问题
- Unity优化大全(十)之 Memory - Mono的托管内存
- Android平台HTTP断点续传的实现
- c++字符串学习
- php去除字符串中指定字符