设为首页 收藏本站
查看: 1329|回复: 0

[经验分享] Emacs Python IDE win7 x64

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-4-22 03:24:24 | 显示全部楼层 |阅读模式
  安装平台 win7 x64 ,emacs 23.3.1
  1. YASnippet
  snippet工具,可自定义一些模板:
  http://yasnippet.googlecode.com/files/yasnippet.avi
上面是演示demo
  .emacs 配置如下

(add-to-list 'load-path "~/.emacs.d/yasnippet")
(require 'yasnippet) ;; not yasnippet-bundle
(yas/global-mode 1)
  

2. AutoComplete
  自动完成工具,其实只是一个前端工具。当然也可以用ropemacs 作为它补全的后端使用。
DSC0000.png
  .emacs 配置如下:

(add-to-list 'load-path "~/.emacs.d/")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d//ac-dict")
(ac-config-default)
  

3. Python-mode
  安装python-mode :
  http://www.loveshack.ukfsn.org/emacs/#python.el 下载后直接丢到load-path 中
  4.Rope and Ropemacs
  Ropemacs非常棒的重构工具,比如rename,move,extract method等等。还有非常好用的goto difinition(跳到定义),show documents(显示文档)、代码补全等等。安装Ropemacs前,必须先安装rope和pymacs 实际上还要安装rope-mode。
  rope的安装方法:

python setup.py install
  pymacs的win上安装方法:

python pppp -C ppppconfig.py pppp.rst.in pymacs.el.in \  pymacs.rst.in Pymacs contrib tests
python setup.py install
  注意此处:我git pymacs到本地后无法install成功,后来别人给一个pymacs包,我放在git的pymacs里,重新执行上面的安装方法后,成功。pymacs包见本文尾
  如果成功,则在python环境中输入以下,不会报错:

from Pymacs import lisp
  .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)
  注意完成后,将下图552行的Pymacs.pymacs 改成Pymacs
DSC0001.png
  Ropmacs的安装方法:

python setup.py install
  .emacs中:

(require 'pymacs)
(pymacs-load "ropemacs" "rope-")
(setq ropemacs-enable-autoimport t)
  注意:ropemacs时,先将ropemacs解压缩,然后将刚刚安装好的ropemode拷贝进去,再执行安装,否则会出错。C:\Python27\Lib\site-packages\ropemacs
  基本操作

rope-code-assist, M-/   
Code completionrope-rename, C-c r r   
Rename a variable, function, etc.
  5.程序调试
  在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 -i -m pdb test.py
  6.代码检查
  基本上都是flymake+pyflakes 或者 flymake +pylint模式,我选择了前者。并安装了pep8
  flymake是emacs自带的,下载pyflakes 和pep8 安装好后,按下面配置好即可:
  c-c c-w是执行命令!
  注意pyflakes 和pep8 都是在cmd中执行命令的。

;pycheck grammer ; indent something
(add-to-list 'load-path "~/.emacs.d/")
(add-hook 'find-file-hook 'flymake-find-file-hook)
(when (load "flymake" t)
(defun flymake-pyflakes-init ()
(let* ((temp-file (flymake-init-create-temp-buffer-copy
'flymake-create-temp-inplace))
(local-file (file-relative-name
temp-file
(file-name-directory buffer-file-name))))
(list "pychecker"  (list local-file))))
(add-to-list 'flymake-allowed-file-name-masks
'("\\.py\\'" flymake-pyflakes-init)))
(load-library "flymake-cursor")
;(global-set-key [f10] 'flymake-goto-prev-error)
;(global-set-key [f11] 'flymake-goto-next-error)
(setq python-check-command "pyflakes")
  
  然后创建一个pychecker.bat的文档 丢到python里面,我的目录是c:\python27

python C:\Python27\runpyflakes.py  %*
pep8 --ignore=E221,E701,E202 --repeat %*
  再在该目录创建一个runpyflakes.py的程序

from pyflakes.scripts.pyflakes
import mainmain()
  效果如下:
DSC0002.png
  
  7.文档帮助
  我还是喜欢firefox直接上官方文档库查找。
  emacs wiki 也给出了sphinx后格式的文档下载,可以直接在emacs info里查看帮助。
  具体链接请见本文末尾处效果可以看最后一个链接。
  
  8.段落注解:
  Comment/Uncomment Region
  If you have ‘transient-mark-mode’ on, you can just use ‘comment-dwim’:
  select a region and hit ‘M-;’.
  The DoWhatIMean means that it will comment or uncomment the region as appropriate.
  If you do not have ‘transient-mark-mode’ on by default, you can hit C-SPC twice to activate it temporarily.
  ( doesn’t python-mode.el offer `py-comment-region? --CH )
  You can also use “rectangles” with comment/uncomment region (among other things that you can do with rectangles).
  See RectangleCommands or “(emacs) Rectangles” in the Emacs manual.
  9.框架支持
  django: https://code.djangoproject.com/wiki/Emacs" 如果不是很熟悉的话,还是建议用pycharm来写吧。
  10.测试
  待完善,下面的link中含有。
  
  主要参考了:
  http://www.iyunv.com/coderzh/archive/2009/12/26/emacspythonide.html
  http://www.enigmacurry.com/2008/05/09/emacs-as-a-powerful-python-ide/
  http://www.enigmacurry.com/2009/01/21/autocompleteel-python-code-completion-in-emacs/
  http://www.emacswiki.org/emacs/?action=browse;oldid=PythonMode;id=PythonProgrammingInEmacs
  http://www.saltycrane.com/blog/2010/05/my-emacs-python-environment/
  http://stackoverflow.com/questions/3513975/problem-with-pyflakes-in-emacs-on-windows
  http://pedrokroger.net/2010/07/configuring-emacs-as-a-python-ide-2/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-59296-1-1.html 上篇帖子: python基于http协议编程:httplib,urllib和urllib2 下篇帖子: Python快速学习04:循环 & 函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表