Emacs Jedi python工具无法加载“错误搜索程序:权限被拒绝,python”?

时间:2013-07-01 19:22:41

标签: python emacs elisp path-variables python-jedi

当我尝试在emacs中打开python文件时出现以下错误:

  

无法猜测python缩进偏移量,使用默认值:4

     

延迟错误:(搜索程序时出错:权限被拒绝,   蟒)

我的假设是python环境变量需要复制到 Emacs PATH变量,因为我必须使用bradleywright的path.el脚本为Mac OS X做同样的事情但是现在我需要为 Windows 7 做同样的事情。我怎么能这样做?

init.el

(load "~/.emacs.d/path.el")

(require 'package)
(add-to-list 'package-archives
             '("marmalade" . "http://marmalade-repo.org/packages/") t)
(package-initialize)


(require 'jedi)
(setq jedi:server-command
  (list "C:/Python33/python.exe" jedi:server-script))

(add-hook 'python-mode-hook 'jedi:setup)
(setq jedi:complete-on-dot t)   

(global-auto-complete-mode t)

(require 'ido)
(ido-mode t)

(add-to-list 'load-path "~/.emacs.d/elpa/magit-1.2.0/magit.el")
(require 'magit)

(require 'linum)
(global-linum-mode 1)

3 个答案:

答案 0 :(得分:2)

使用sys.executable打开Python并获取Python的完整路径:

>>> import sys
>>> sys.executable

然后像这样设置jedi:server-command

(setq jedi:server-command
      (list "THE-PATH-YOU-GOT" jedi:server-script))

另见:http://tkf.github.io/emacs-jedi/latest/#jedi:server-command

请注意,您需要安装Python模块(即epc和jedi),并且它们应该可以导入此Python。因此,请确保这适用于您的Python:

>>> import epc, jedi

答案 1 :(得分:1)

寻找" deferred.el"。存在两个函数,其中引发该错误。在edebug下运行它们可以揭示原因。

答案 2 :(得分:0)

重新启动*我的电脑修复了此错误:

  

延迟错误:(搜索程序时出错:权限被拒绝,   蟒)

* 这是我自安装Python以来首次重启。

现在一切似乎工作正常,我仍然得到can’t guess python indent offset, using defaults: 4错误,但是jedi tab-completion工作正常。

感谢大家的建议,这肯定有帮助!