Emacs中打造强大的Python IDE

简介:

本文将介绍,在Emacs中,通过各种扩展,打造强大的Python IDE环境,包括Snippet工具,智能提示,自动补全,重构工具,调试以及GAE的调试,等等。以下各工具的安装前提是你对Emacs的配置文件有一定的了解,所有相关的el文件都必须放在load_path能够加载的地方。

1. YASnippet

snippet工具,可自定义一些模板,必不可少的好东西!看了下面这个很酷的演示动画就明白了:

http://yasnippet.googlecode.com/files/yasnippet.avi

安装方法:

( require   ' yasnippet)
(yas/initialize)
(yas/load-directory "~/.emacs.d/plugins/yasnippet-0.6.1c/snippets")


2. AutoComplete

自动完成工具,会像VS里一样,弹出一个列表框让你去选择。

'

安装方法:

复制代码
( require   ' auto-complete)
(require 
' auto - complete - config)
(global
- auto - complete - mode t)
(setq
- default ac - sources  ' (ac-source-words-in-same-mode-buffers))
(add-hook 
' emacs - lisp - mode - hook (lambda () (add - to - list  ' ac-sources  ' ac - source - symbols)))
(add
- hook  ' auto-complete-mode-hook (lambda () (add-to-list  ' ac - sources  ' ac-source-filename)))
(set-face-background 
' ac - candidate - face  " lightgray " )
(set
- face - underline  ' ac-candidate-face "darkgray")
(set-face-background 
' ac - selection - face  " steelblue " ) ;;; 设置比上面截图中更好看的背景颜色
(define
- key ac - completing - map   " \M-n "   ' ac-next)  ;;;  列表中通过按M-n来向下移动
(define-key ac-completing-map "\M-p" 
' ac - previous)
(setq ac
- auto - start  2 )
(setq ac
- dwim t)
(define
- key ac - mode - map  (kbd  " M-TAB " ' auto-complete)
复制代码


3. Rope and Ropemacs

非常棒的重构工具,比如rename,move,extract method等等。还有非常好用的goto difinition(跳到定义),show documents(显示文档)等等。安装Ropemacs前,必须先安装ropepymacs

rope的安装方法:

python setup.py install

pymacs的安装方法:

python setup.py install

.emacs中:

(autoload  ' pymacs-apply "pymacs")
(autoload 
' pymacs - call  " pymacs " )
(autoload 
' pymacs-eval "pymacs" nil t)
(autoload 
' pymacs - exec   " pymacs "  nil t)
(autoload 
' pymacs-load "pymacs" nil t)

Ropmacs的安装方法:

python setup.py install

.emacs中:

(pymacs - load  " ropemacs "   " rope- " )
(setq ropemacs
- enable - autoimport t)


4. pycomplete

一个更加强大的智能提示工具,比如,输入time.cl 然后按TAB键,会列出time模块所有cl开头的函数名。在调用函数时,还会在mini buffer中提示函数的参数类型。这个东西需要先安装pymacs。

安装方法:

1. 拷贝 python-mode.el and pycomplete.el 到Emacs的load_path中。

2. 拷贝 pycomplete.pyPYTHONPATH (比如: c:/python25/Lib/site-packages)

3. .emacs中添加:

( require   ' pycomplete)
(setq auto-mode-alist (cons 
' ( " \\.py$ "   .  python - mode) auto - mode - alist))
(autoload 
' python-mode "python-mode" "Python editing mode." t)
(setq interpreter-mode-alist(cons 
' ( " python "   .  python - mode)
                           interpreter
- mode - alist))


5. pdb调试

在Emacs中,通过M-x pdb可调出pdb对python代码进行调试。但是发现在Windows系统中,总进入不了调试模式。主要原因有:

1. windows中,找不到pdb.py位置。需自己制定pdb的路径。可以通过下面的方法设置pdb的路径:

复制代码
;; pdb setup ,  note the python version
(setq pdb
- path  ' c:/python25/Lib/pdb.py
       gud-pdb-command-name (symbol-name pdb-path))
 (defadvice pdb (before gud-query-cmdline activate)
   "Provide a better default command line when called interactively."
   (interactive
    (list (gud-query-cmdline pdb-path
                 (file-name-nondirectory buffer-file-name)))))
复制代码


2. windows中,调用pdb时,未使用python -i 参数。

针对上面两个问题,我的解决办法是,不设置pdb具体路径,M-x pdb 回车后,出现下面命令:

Run pdb (like this): pdb 

然后手动修改一下:

Run pdb (like this):  python  - - m  pdb test.py

这样就搞定了。

6. 如何调试GAE程序

GAE是一个Web应用,需要跨线程进行调试,而pdb本身对线程调试支持不好。使用pdb进行线程调试时,只有在需要调试的地方插入下面代码:

import  pdb
pdb.set_trace()

然后直接运行被调试代码,而不是通过python pdb来执行,就可以多线程代码进行调试了。

但是Google App Engine这样的Web应用,使用这个方法还是不能调试,和stdin和stdout有关,最后找到一个很好的解决方法:

def  set_trace():
    
import  pdb, sys
    debugger 
=  pdb.Pdb(stdin = sys. __stdin__ ,
        stdout
= sys. __stdout__ )
    debugger.set_trace(sys._getframe().f_back)


在任何需要调试的地方,调用上面的set_trace()函数。

如果你还有更好玩的东西,一定要告诉我!

参考文档:

http://www.emacswiki.org/emacs/PythonMode

http://www.enigmacurry.com/2008/05/09/emacs-as-a-powerful-python-ide/ 

http://jjinux.blogspot.com/2008/05/python-debugging-google-app-engine-apps.html 

 

 

本文转自CoderZh博客园博客,原文链接:http://www.cnblogs.com/coderzh/archive/2009/12/26/emacspythonide.html,如需转载请自行联系原作者

相关文章
|
8月前
|
IDE 程序员 编译器
适用于 Python 的 10 大最佳 IDE,你 Pick 哪一款?
适用于 Python 的 10 大最佳 IDE,你 Pick 哪一款?
670 0
|
开发框架 IDE Linux
Python零基础入门(二)——IDE介绍以及Python+PyCharm的安装
Python零基础入门(二)——IDE介绍以及Python+PyCharm的安装
|
3月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
669 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
5月前
|
IDE 开发工具 Android开发
【Python编程入门】面对IDE编译错误:如何解读系统提示并解决问题
本文通过一个Python编码错误的实例,讲述了如何根据系统提示解读并解决IDE编译中出现的问题,强调了直接查阅官方文档的重要性,而不是盲目依赖百度搜索来解决问题。
127 2
【Python编程入门】面对IDE编译错误:如何解读系统提示并解决问题
|
6月前
|
IDE 开发工具 iOS开发
Python的IDE选择
【7月更文挑战第4天】Python的IDE选择
159 59
|
6月前
|
IDE 开发工具 开发者
Emacs有什么优点,用Emacs写程序真的比IDE更方便吗?
Emacs有什么优点,用Emacs写程序真的比IDE更方便吗?
|
7月前
|
IDE Java 开发工具
|
8月前
|
IDE 程序员 测试技术
Python IDE
Python IDE
|
IDE Ubuntu 开发工具
Python(五)IDE集成开发工具pycharm安装及配置
工欲善其事,必先利其器。好的开发工具能让我们的开发速度事半功倍。 Python比较好的集成开发工具IDE,大概就是pycharm,以及万物皆可的VScode VScode具体用什么插件比较好还在研究中,今天大概先看下pycharm的安装及配置。 这里分两个系统,ubuntu及windows 一:windows安装及汉化 1 :安装 首先,去官方网站下载安装包,专业版是要花钱购买的,我这里选择的是社区版,功能没有专业版那么强大,但是基本上够用。 网址:www.jetbrains.com/pycharm/dow… 下载完成之后,一路下一步安装即可。
149 1
|
1月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!

热门文章

最新文章