更改Python命令行交互提示符的方法


Posted in Python onJanuary 14, 2015

一、定制Python的交互提示符

Python的默认交互提示符为“>>>”,但它是可以定制的。

Python启动后,先寻找PYTHONSTARTUP环境变量,然后执行此文件中变量指定的执行代码。

一些Linux发布包提供了缺省的启动脚本,一般存放在其home目录,名为.pythonstartup。“Tab完成”和“命令历史”这两个功能增强了提示符应用,两者都基于readline模块。

如果没有.pythonstartup文件,可以自己创建一个。

简单例子:

# python startup file

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

可以在http://pypi.python.org/pypi/pbp.scripts另存为.pythonstartup。

设置PYTHONSTARTUP环境变量

如果是在Linux或Mac OS X下运行Python,最简单的方法是创建启动脚本,并保存到home目录。
然后用PYTHONSTARTUP环境变量连接它,设置到系统启动脚本。例如在Bash和Korn shell,可使用.profile文件,你可以插入行,例如:
export PYTHONSTARTUP=~/.pythonstartup
在windows下,更为方便,设置PYTHONSTARTUP黄金变量即可。

二、iPython

iPython见:http://ipython.scipy.org
iPython的目标是为交互应用和研究计算创建一个全面的环境。iPython有两个主要组件:

1)一个增强的Python交互shell
2)交互式并行计算架构

iPython开源,当前版本:0.9.1。它是一个Python的增强shell。特征:

  -动态的对象检查
  -从提示符访问系统shell
  -Profiling的直接支持
  -调试方便

三、Python的distutils

Python自带了一套工具distutils,用于发布Python应用程序。它提供了:

1、一个骨架
提供标准元数据域,如作者名、License类型等等。

2、一套帮助器
明白怎样建立发布包。

distutils没有提供定义其它依赖包的功能,setuptools工具增强了这一点。

setuptools 框架,它是 Python Enterprise Application Kit(PEAK)的一个副项目。 setuptools 替换了标准的 distutils 库,并为 Python 添加了版本化的包和依赖性管理。

Perl 用户比较熟悉 CPAN,而 Ruby 用户则比较熟悉 Gems;引导 setuptools 的 ez_setup 工具和随之而生的扩展后的 easy_install 与 “Cheeseshop”(Python Package Index,也称为 “PyPI”)一起工作来实现相同的功能。另外,setuptools 还让我们可以将自己的库包装成一个称为 “egg” 的包,它与 Java? 的 JAR 文件类似,不过是用于 Python 的。

要安装setuptools,使用EasyInstall。
EasyInstall是一个包下载器和安装器。EasyInstall是setuptools工具的补充,因为它知道怎样处理包建立。

Python 相关文章推荐
python批量修改文件后缀示例代码分享
Dec 24 Python
Python基于Socket实现的简单聊天程序示例
Aug 05 Python
python+opencv实现动态物体追踪
Jan 09 Python
Python机器学习之K-Means聚类实现详解
Feb 22 Python
pandas DataFrame数据转为list的方法
Apr 11 Python
Django 创建后台,配置sqlite3教程
Nov 18 Python
Pytorch自己加载单通道图片用作数据集训练的实例
Jan 18 Python
python 解决selenium 中的 .clear()方法失效问题
Sep 01 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
Oct 18 Python
如何通过Python实现RabbitMQ延迟队列
Nov 28 Python
win10+anaconda安装yolov5的方法及问题解决方案
Apr 29 Python
python自动化八大定位元素讲解
Jul 09 Python
Python的迭代器和生成器使用实例
Jan 14 #Python
python实现带验证码网站的自动登陆实现代码
Jan 12 #Python
Python三元运算实现方法
Jan 12 #Python
Python中的True,False条件判断实例分析
Jan 12 #Python
Python基类函数的重载与调用实例分析
Jan 12 #Python
Python类的专用方法实例分析
Jan 09 #Python
Python序列之list和tuple常用方法以及注意事项
Jan 09 #Python
You might like
使用php将某个目录下面的所有文件罗列出来的方法详解
2013/06/21 PHP
php中怎么搜索相关联数组键值及获取之
2013/10/17 PHP
Laravel5.1 框架响应基本用法实例分析
2020/01/04 PHP
js程序中美元符号$是什么
2008/06/05 Javascript
由document.body和document.documentElement想到的
2009/04/13 Javascript
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
JavaScript中扩展Array contains方法实例
2020/08/23 Javascript
jQuery实现鼠标单击网页文字后在文本框显示的方法
2015/05/06 Javascript
跟我学习javascript的undefined与null
2015/11/17 Javascript
js实现无缝滚动特效
2015/12/20 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
js 判断一组日期是否是连续的简单实例
2016/07/11 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
vue router使用query和params传参的使用和区别
2017/11/13 Javascript
Vue 自定义动态组件实例详解
2018/03/28 Javascript
详解Vue.js中.native修饰符
2018/04/24 Javascript
Node.js console控制台简单用法分析
2019/01/04 Javascript
vue中监听返回键问题
2019/08/28 Javascript
python中map()与zip()操作方法
2016/02/27 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
python实现自动发送邮件发送多人、群发、多附件的示例
2018/01/23 Python
对Python 网络设备巡检脚本的实例讲解
2018/04/22 Python
解决python3 网络请求路径包含中文的问题
2018/05/10 Python
python如何生成网页验证码
2018/07/28 Python
python pygame实现2048游戏
2018/11/20 Python
python把1变成01的步骤总结
2019/02/27 Python
解决pycharm最左侧Tool Buttons显示不全的问题
2019/12/17 Python
Python 字符串池化的前提
2020/07/03 Python
优秀员工自荐信范文
2013/10/05 职场文书
灰雀教学反思
2014/04/28 职场文书
美德少年事迹材料1000字
2014/08/21 职场文书
初三学生语文考试作弊检讨书
2014/12/14 职场文书
大学生个人学年总结
2015/02/15 职场文书
小学体育教学随笔
2015/08/14 职场文书
MySQL添加索引特点及优化问题
2022/07/23 MySQL