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

[经验分享] Emacs 配置 Python 编程环境

[复制链接]

尚未签到

发表于 2015-12-1 09:18:55 | 显示全部楼层 |阅读模式
  python编程环境设置涉及到:自动完成、语法检查、虚拟环境。
  为了不把系统搞乱,在python的虚拟环境中安装相关的插件。

一、安装python虚拟环境 virtualenvwrapper





sudo apt-get virtualenvwrapper
  然后创建一个虚拟环境:



$ mkvirtualenv -p /usr/bin/python3 test
  下面开始在test这个虚拟环境中操作:
先看看有哪些包:



$ pip list
pip (1.5.6)
setuptools (5.5.1)
  可以看到只有2个包。
  以下开始在虚拟环境中安装!

二、在虚拟环境中安装相关包 jedi、pylint



(test)a@pc:$ pip install jedi pylint
  说明:
jedi ---------  python的自动补全;
pylint ------- python的语法检查;
  安装完后看看装了哪些东西:  



$ pip list
astroid (1.3.6)
jedi (0.9.0)
logilab-common (0.63.2)
pip (1.5.6)
pylint (1.4.3)
setuptools (5.5.1)
six (1.9.0)
三、在 emacs 中安装相关插件 elpy、flycheck、company-jedi、virtualenvwrapper





M-x package-list-packages
  安装


  • elpy
  • flycheck
  • company-jedi
  • virtualenvwrapper

四、修改emacs配置文件



;; 添加仓库
(require 'package)
(setq package-archives '(
("gnu" . "http://elpa.gnu.org/packages/")
("melpa" . "http://melpa.milkbox.net/packages/")
))
(package-initialize)

;; 自动完成:company
(require 'company)
(add-hook 'after-init-hook 'global-company-mode); 全局开启
(setq company-show-numbers t); 显示序号
(setq company-idle-delay 0.2); 菜单延迟
(setq company-minimum-prefix-length 1); 开始补全字数
;; elpy---主角
(require 'elpy)
(elpy-enable)
;; 语法检查:flycheck
(add-hook 'after-init-hook #'global-flycheck-mode);全局开启
; 关闭flymake,使用flycheck
(when (require 'flycheck nil t)
(setq elpy-modules(delq 'elpy-module-flymake elpy-modules))
(add-hook 'elpy-mode-hook 'flycheck-mode))
;; 虚拟环境: virtualenvwrapper
(require 'virtualenvwrapper)
(venv-initialize-interactive-shells)
(venv-initialize-eshell)
(setq venv-location "~/pyvirtualenv/");设置虚拟环境目录
;; 如果有多个目录:
;; (setq venv-location '("~/myvenv-1/"
;;                       "~/myvenv-2/"))
;; M-x venv-workon 打开虚拟环境
  这样一个最简单的python编程环境就配置好了。
  


注:在家目录下的.bashrc文件中加入以下2行




#tells virtualenvwrapper where to store the virtualenvs that will be created and used.
export WORKON_HOME=~/pyvirtualenv
#runs the shell script to set up the virtualenvwrapper commands and should point to the location where virtualenvwrapper was installed.
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
  pyvirtualenv是放置虚拟环境的目录,可以改成自己想要的名字。这样virtualenvwrapper用起来更灵活些。
  


相关链接:

https://github.com/jorgenschaefer/elpy

http://www.pylint.org/#myCarousel



还有种方式:



从package.el安装好anaconda-mode和company-anaconda就可以了!可以不用装jedi。


;; 自动完成
(require 'company)
(global-company-mode t); 全局开启
(setq company-idle-delay 0.2;菜单延迟
company-minimum-prefix-length 1; 开始补全字数
company-require-match nil
company-dabbrev-ignore-case nil
company-dabbrev-downcase nil
company-show-numbers t; 显示序号
company-transformers '(company-sort-by-backend-importance)
company-continue-commands '(not helm-dabbrev)
)
; 补全后端使用anaconda
(add-to-list 'company-backends '(company-anaconda :with company-yasnippet))
; 补全快捷键
(global-set-key (kbd "<C-tab>") 'company-complete)
; 补全菜单选项快捷键
(define-key company-active-map (kbd "C-n") 'company-select-next)
(define-key company-active-map (kbd "C-p") 'company-select-previous)

;; 在python模式中自动启用
(add-hook 'python-mode-hook 'anaconda-mode)
  

然后在虚拟环境总 pip install  jedi==0.8.1 json-rpc==1.8.1 service_factory==0.1.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-145703-1-1.html 上篇帖子: 【Python系统学习】基础篇 下篇帖子: 唠叨一些关于Python的事情
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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