在 Emacs 中执行 Pyhton

最近在整理 Python 的相关的内容,主要需要整理成笔记,记录下来,等有需要的时候再进行复习。

在编写 org 的时候,发现 Python 的内容并不能很好的执行,而且生成的图片也不能正常显示,所以查询了一下资料,发现如果是 python 的话,需要按下面的形势处理:

#+BEGIN_SRC python :results file :preamble "# -*- coding: utf-8 -*-" :python python3 :exports both

其中 :results 针对不同的执行结果进行调整,如果是想把 Python 生成的图片显示在 org 文档里的话,就要选择 file ,如果是想显示执行的结果的话,就使用 output 。

:preamble 的话,是针对 Python 的码制了,现在如果有中文的话,可能需要指定为 utf-8 所以默认需要加上这个内容。

:python 是用来指定解释器的,在 Mac 环境下,执行的时候,总是提示找不到 pandas 但是如果直接使用 python test.py 的话是能正常显示结果,可能是因为默认查找的 python2 吧,这里进行指定到 python3 上就可以使用了。

:exports 是指定输出的情况的,code 是指显示代码,results 是指的仅显示结果,both 是两个都显示,none 则是指的都不显示。

:session 是特殊情况,有些时候需要调用方法中的 return 使用 session 的话能直接使用,可以不必再单独返回了。

:var 可以指定传入的参数

使用示例如下:

#+tblname: data_table
| a | 1 |
| b | 2 |
| c | 3 |
#+begin_src python :var val=1 :var data=data_table
return(data[val])
#+end_src

#+RESULTS:
| b | 2 |

#+begin_src python :results file
import matplotlib, numpy
matplotlib.use('Agg')
import matplotlib.pyplot as plt
fig=plt.figure(figsize=(4,2))
x=numpy.linspace(-5,5)
plt.plot(numpy.sin(x)/x)
fig.tight_layout()
plt.savefig('./images/python-matplot-fig.png')
return './images/python-matplot-fig.png' # return filename to org-mode
#+end_src

#+RESULTS:
[[file:./images/python-matplot-fig.png]]

将这个内容增加到 snippet 中去,在 snippet/org-mode/ 路径下增加 python 文件,其中内容如下

# -*- mode: snippet -*-
# name: python
# key: <pyt_
Author
Tags
总结(3) Emacs(2) org mode(4) 年度清单(2) 读书清单(2) 电影清单(2) 电视清单(2) Python(3) 学习计划(1) 子弹笔记(1) 手帐体系(1) 时间管理(1) 时间使用效率(1) 形意拳(1) 知识管理(1) 简历(1) 技能水平(1) 生活(1) 减法生活(1) 阅读(1) 阅读分组(1) org(1) docx(1) markdown(2) cmder(1) 图床(1) jsdelivr(1) github(1) 安卓系统(1) 手动更新手机系统(1) post link(1) post path(1) hexo(2) hugo(2) GitHub Pages(1) travis(1) 自动部署博客(1) presentation(1) gcc(1) g++(1) 默认表格(1) 复杂表格(1) multimd table(1) google adsense(1) evil(1) surround(1) librime(2) emacs-rime(1) liberime(1) dot(1) graphviz(1) use-sub-superscripts(1) ditaa(1) Evil Multiple cursors(1) turn evil mode off(1) modifier keys(1) keymap(1) super(1) hyper(1) install Emacs(1) Mac OS(1) keybinds(1) clocktable(1) coding system(1) image library(1) keybind(1) spacemacs(1) org babel(1) homebrew(1) dd(1) diskutil(1) tmux(1) xcode(1) xcrun(1) node-gyp(1) tar(1) tree(1) pacman(1) plantuml(1) find(1) grep(2) du(1) apt-get(1) apt(1) regex(1) wildcard(1) zsh(1) gdb(1) lsof(1) netstat(1) rebase(2) workflow(1) 工作流(1) .gitignore(1) postbuffer(1) hung up(1) merge(1) cache(1) reset(1) Git(1) command(1) submodule(1) GitHub Pull Request(1) pr(1) Matplotlib(1) beautifusoup(1) 下载小说(1) SOLID(1) Leetcode(2) 透视表(1) read_excel()(1) pandas(1) conda(1) django(1) markdown-deux(1) mysql(1) oracle(1) 模糊查询(1) logging level(1) reflex(1) Field(1) Maven(1) Selenium(1) 下拉框(1) select into(1) insert into select(1) CAST(1) CONVERT(1) timestamp(1) concat(1) concat_ws(1) group_concat(1) union(1) grant privileges(1) 重置 root 密码(1) 报错 10060(1) 清理连接数(1) create user(1) set password(1) exists(1) in(1) markdown-it(1) emoji(1) tasks(1) valine(1) Code 504(1) Hugo(1) theme(1) substring(1) indexOf(1) RegExp(1) 定位节点(1) 正则匹配(1) async(1) 异步请求(1) css(2) layui(1) 滚动条(1) JavaScript(1)