更改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求斐波那契数列示例分享
Feb 14 Python
Python实现抓取页面上链接的简单爬虫分享
Jan 21 Python
python实现向ppt文件里插入新幻灯片页面的方法
Apr 28 Python
详细讲解Python中的文件I/O操作
May 24 Python
python实现实时监控文件的方法
Aug 26 Python
python+splinter自动刷新抢票功能
Sep 25 Python
Python之两种模式的生产者消费者模型详解
Oct 26 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
Oct 30 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
Jan 26 Python
Python facenet进行人脸识别测试过程解析
Aug 16 Python
使用TensorBoard进行超参数优化的实现
Jul 06 Python
Vs Code中8个好用的python 扩展插件
Oct 12 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中计算未知长度的字符串哪个字符出现的次数最多的代码
2012/08/14 PHP
PHP实现获取图片颜色值的方法
2014/07/11 PHP
php实现paypal 授权登录
2015/05/28 PHP
PHP下载文件的函数实例代码
2016/05/18 PHP
PHP实现页面静态化的超简单方法
2016/09/06 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
2019/04/02 PHP
javascript对talbe进行动态添加、删除、验证实现代码
2012/03/29 Javascript
Javascript的闭包详解
2014/12/26 Javascript
Bootstrap每天必学之导航条
2015/11/27 Javascript
基于javascript bootstrap实现生日日期联动选择
2016/04/07 Javascript
使用node.js中的Buffer类处理二进制数据的方法
2016/11/26 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
2016/12/28 Javascript
JS给按钮添加跳转功能类似a标签
2017/05/30 Javascript
angular2 ng2-file-upload上传示例代码
2018/08/23 Javascript
解决vue 单文件组件中样式加载问题
2019/04/24 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
jQuery zTree插件使用简单教程
2019/08/16 jQuery
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
JavaScript字符串处理常见操作方法小结
2019/11/15 Javascript
浅谈Vue使用Elementui修改默认的最快方法
2020/12/05 Vue.js
python通过shutil实现快速文件复制的方法
2015/03/14 Python
python创建关联数组(字典)的方法
2015/05/04 Python
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
python的concat等多种用法详解
2018/11/28 Python
python2.7实现邮件发送功能
2018/12/12 Python
python爬虫中多线程的使用详解
2019/09/23 Python
python @propert装饰器使用方法原理解析
2019/12/25 Python
pytorch逐元素比较tensor大小实例
2020/01/03 Python
Python日志syslog使用原理详解
2020/02/18 Python
Python数据模型与Python对象模型的相关总结
2021/01/26 Python
《匆匆》教学反思
2014/02/22 职场文书
委托书格式要求
2015/01/28 职场文书
六一儿童节开幕词
2015/01/29 职场文书
MySQL子查询中order by不生效问题的解决方法
2021/08/02 MySQL
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python
二维码条形码生成的JavaScript脚本库
2022/07/07 Javascript