我正在尝试来自org-babel网站的Python示例,如下所示:
#+begin_src python :session
def foo(x):
if x>0:
return x+1
else
return x-1
foo(1)
#+end_src
在调用C-c C-c
时,我在迷你缓冲区中收到以下错误:
Searching for program: permission denied, python
我不知道为什么以及如何解决它。
我目前的设置如下:我是运行Windows 7和cygwin。我已经通过cygwin安装了emacs,并通过cygwin中的emacs &
进行了说明。我已经尝试在 emacs 中编辑一些变量,但没有效果,例如:(setq python-python-command "c:/Python27/python.exe")
你的python程序不是可执行的 - 没有执行权限。 转到其文件夹并更改权限以包括执行。 您可以使用 Windows 资源管理器执行此操作,但您必须以管理员身份登录。 你也可以从 Emacs 中,在 Dired 中使用 M
(命令 dired-do-chmod
)来做到这一点。
实际上,听起来该程序python
不在您的exec-path
中。 确保它在那里。 无论如何,问题是Emacs在您的exec-path
中找不到名为python
的可执行文件。
对于Windows中的这种上下文,Emacs的"权限被拒绝"通常意味着找不到可执行文件。通常这是由于可执行文件不在 Windows Path
.将可执行文件 [C:\python27] 的位置添加到Path
应该可以修复它。
您可以按照以下说明访问Path
:
http://www.java.com/en/download/help/path.xml
附图:
http://www.faqforge.com/windows/setting-the-path-environmental-variable-on-windows-7/
使用 PowerShell:
https://stackoverflow.com/a/1333717/2101909
在org-mode
执行代码块之前,必须启用该代码块的语言。试试这个:
(org-babel-do-load-languages
'org-babel-load-languages
'((python . t)))