【问题标题】:Org-Babel Python on Windows via Cygwin has "permission denied" error通过 Cygwin 在 Windows 上的 Org-Babel Python 出现“权限被拒绝”错误
【发布时间】:2014-01-11 18:42:38
【问题描述】:

我正在尝试来自 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 时,我在 Minibuffer 中收到以下错误:

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 org-mode


    【解决方案1】:

    听起来你的 python 程序是不可执行的——没有执行权限。转到其文件夹并更改权限以包括执行。您可以使用 Windows 资源管理器执行此操作,但您必须以管理员身份登录。您也可以在 Dired 中的 Emacs 中使用 M(命令 dired-do-chmod)来执行此操作。

    实际上,听起来程序python 不在您的exec-path 中。确保它在那里。无论如何,问题是 Emacs 在您的 exec-path 中找不到名为 python 的可执行文件。

    【讨论】:

    • 这并没有改变问题。
    • 文件夹当然也需要允许这种可能性。错误消息告诉您python 未被识别为可执行程序。除了execute 权限之外,其他权限问题也可能意味着。请参阅 Elisp 手册中的 file-error,节点 Standard Errors。引发错误的代码在函数start-process 中,在文件process.c 中。
    【解决方案2】:

    对于 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

    【讨论】:

      【解决方案3】:

      org-mode 将执行一个代码块之前,该代码块的语言must be enabled。试试这个:

      (org-babel-do-load-languages
       'org-babel-load-languages
       '((python . t)))
      

      【讨论】:

      • 对不起,我忘了说,这已经在我的配置中了
      • M-! python --version 呢?
      • /c/cygwin/bin/python: /c/cygwin/bin/python: cannot execute binary file
      • 听起来越来越像Drew's answer 是正确的。来自 Cygwin shell(Emacs 之外)的 python --version 怎么样?
      • 它打印Python 2.7,就像它应该的那样
      猜你喜欢
      • 2014-09-29
      • 2015-04-28
      • 2020-04-16
      • 1970-01-01
      • 1970-01-01
      • 2014-12-29
      • 2019-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多