通过Cygwin在Windows上的Org-Babel Python有“权限被拒绝”错误



我正在尝试来自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)))

最新更新