打造自己习惯的Python命令行环境


类型:Python,创建时间:Jan. 1, 2012, 6:33 p.m.

标题无“转载”即原创文章,版权所有。转载请注明来源:http://hgoldfish.com/blogs/article/70/。

使用过一段时间的Python之后,大多数朋友可能已经发现自己经常使用的是Python某一部分的功能。比如习惯拿Python来当计算器的朋友,最喜欢的是运行Python的命令行之后就打一个:

from __future__ import division
from math import *

而做Django开发的朋友最喜欢的则是:

import urllib
import django.models as dm
import django.shortcuts as ds

每次运行之后都要输入这些命令不免麻烦,幸好Python开发者早就替我们考虑好这个问题了。可以通过设置"PYTHONSTARTUP"这个环境变量让Python命令行每次运行后都自动做这些事。

比如,我们可以编写一个名为startup.py的文件,它的内容是:

from __future__ import division
from math import *

假设将它保存到H:\Documents\myconfig\startup.py。然后设置环境变量PYTHONSTARTUP=H:\Documents\myconfig\startup.py。下次运行Python命令行之后,输入sqrt(2)试试。

这个环境变量对于Python 3.x也是有效的。因此,如果在startup.py里出现Python 3.x的语法或者Python 3.x里没有安装的模块,很有可能会报错。这时,可以根据os.version_info判断Python的版本号,然后执行不同的命令。比如:

from __future__ import division
from math import *
import os, sys
if sys.version_info[0]<3:
    from httplib import HTTPConnection
else:
    from http.client import HTTPConnection

利用这种技巧,还可以改造Python 2.6/2.7,让他们的命令行也能用上Python 3.x的语法,方便我们更快地熟悉Python 3.x的语法。下面贴一个我自己的startup.py:

# -*- encoding:utf-8 -*-
from __future__ import print_function
from __future__ import unicode_literals
from __future__ import division
from __future__ import absolute_import
try:
    str=unicode
except:
    pass

import sys, os, struct, ctypes
from math import *

标题无“转载”即原创文章,版权所有。转载请注明来源:http://hgoldfish.com/blogs/article/70/。


vayn(Jan. 2, 2012, 8:19 a.m.)

很巧最近我也读到一篇设置Python自带命令行的文章http://goo.gl/QiNOB除了修改启动环境之外还能设置编辑器什么的。不过我现在用的是ipython


何不来发表一下您对本文的看法(使用Markdown语法,分段空两行):