Emacs 如何使用geiser运行racket:获取错误:Can';t exec程序:/Applications/Racketv6.0/DrRacket.app

Emacs 如何使用geiser运行racket:获取错误:Can';t exec程序:/Applications/Racketv6.0/DrRacket.app,emacs,racket,read-eval-print-loop,geiser,Emacs,Racket,Read Eval Print Loop,Geiser,我是Emacs的新手,有点麻烦。我希望使用Geiser从Emacs运行racket。我告诉Emacs,racket的位置如下: (setq geiser-racket-binary "/Applications/Racket\ v6.0/DrRacket.app") (我是从问题中得出的:) 我首先编译保存的racket代码。但是,当我尝试点击M-x,然后点击run geiser,它会提示我执行方案。此时,我键入球拍。Emacs现在打开racket REPL缓冲区,并在该缓冲区中留下错误: 无

我是Emacs的新手,有点麻烦。我希望使用Geiser从Emacs运行
racket
。我告诉Emacs,
racket
的位置如下:

(setq geiser-racket-binary "/Applications/Racket\ v6.0/DrRacket.app")
(我是从问题中得出的:)

我首先编译保存的racket代码。但是,当我尝试点击M-x,然后点击
run geiser
,它会提示我执行方案。此时,我键入
球拍
。Emacs现在打开racket REPL缓冲区,并在该缓冲区中留下错误:

无法执行程序:/Applications/Racketv6.0/DrRacket.app

如果有帮助,这里是我的
.emacs
文件:

(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.

 '(geiser-repl-startup-time 20000)
 '(package-archives (quote (("gnu" . "elpa gnu packages website") ("melpa" . "http://melpa.milkbox.net/#/"))))    
 '(package-directory-list (quote ("/Applications/Emacs.app/Contents/Resources/site-lisp/elpa")))    
 '(python-python-command "/usr/local/bin/python3"))

(setq geiser-racket-binary "/Applications/Racket\ v6.0/DrRacket.app")    
(setq-default cursor-type 'bar)

(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(default ((t (:inherit nil :stipple nil :background "controlDarkShadowColor" :foreground "Green" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 120 :width normal :foundry "apple" :family "Monaco")))))

(require 'package)

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

在OSX上,app从技术上讲是一个目录。实际的可执行文件位于
Content/MacOS/xxx
中(如果我的内存正常)

编辑:换言之,您应该编写如下内容:

(setq geiser-racket-binary "/Applications/Racket\ v6.0/DrRacket.app/Content/MacOS/DrRacket")

注意:我不在Mac电脑上,因此我现在无法验证详细信息。

我认为您引用了错误的可执行文件

“DrRacket”是一个IDE(带有图形用户界面),用于编辑Racket代码。从
男子篮球比赛

DrRacket是Racket编程环境

尝试将
geiser racket binary
设置为
racket
可执行文件(即“核心racket实现”)的位置


编辑

如果Mac安装Racket的命名方案与Linux安装中使用的命名方案类似,则应在类似于您可以找到
DrRacket
(或
DrRacket
)二进制文件的位置处,放置一个名为
Racket
Racket
的二进制文件:


(不是说你会在
/usr/bin/
中找到二进制文件,只是想说明所有可能相关的二进制文件很有可能都位于同一目录中。)

我想这意味着我想用实际的可执行文件替换“/Applications/Racket\v6.0/DrRacket.app”???“xxx”指的是“/Applications/Racket\v6.0/DrRacket.app”还是它的某个子字符串(或其他什么)?“内容”和“MacOS”是指某物还是它们本身??我为我的困惑道歉,谢谢你的回答,我认为你至少更接近于理解需要做什么。
$ locate racket
...
/usr/bin/drracket
/usr/bin/gracket
/usr/bin/gracket-text
/usr/bin/racket
...