0

我正在尝试在 pycharm 中使用 abjad 和 lilypond 为学校项目生成音乐。但是,在安装了 abjad 和 lilypond 之后,我似乎无法让 abjad 与 lilypond 一起工作。

我已经尝试按照 lilypond 网站上的说明进行操作。我读了一些关于配置我的运行配置的东西,但似乎无法让它工作。我不知道如何在 PyCharm 中添加 virtualenv 的路径。

当我运行一些示例代码时,我只是在运行窗口“/bin/sh:lilypond:command not found”中得到这个。

notes = [abjad.Note("ds'16"), abjad.Note("cs'16"), abjad.Note("e'16"), abjad.Note("c'16")]  
container = abjad.Container(notes)  
abjad.show(container)

编辑 1:我尝试将 /LilyPond.app/Contents/Resources/bin/lilypond 添加到我的项目解释器中的解释器路径中,但仍然没有成功。

编辑 2:这就是我的解释器路径的样子:https ://imgur.com/H6xSeYh

4

1 回答 1

0

您遇到的第一个问题是,开箱即用的 MacOS Lilypond 应用程序没有以其他应用程序可以轻松访问的方式公开其底层命令行工具。第二部分是,即使你修复了这个问题,如何将修复程序引入 PyCharm 也不是很明显。幸运的是,这两个问题都可以解决。

首先,解释错误。错误:

/bin/sh: lilypond: command not found

表示 shell 脚本在lilypond没有指定工具的任何特定位置的情况下尝试运行。在这种情况下, MacOS 将查看您的PATH环境变量以尝试找到它。

其次,要纠正错误的路径:不要为此使用解释器路径。它的唯一用途是告诉 PyCharm Python 解释器在哪里;你不能用它来通知阿布贾德 Lilypond 住在哪里。对于后一项任务,PATH将是您最好的选择。

有几种方法可以解决这个问题,但要点是:您需要PATH使用包含该工具的某个目录来更新您的目录——但您还需要以 PyCharm 启动的脚本获取更新后的PATH.

通常,我在PATHhacking 中进行操作~/.bash_profile,因为 Bash 是 MacOS 中的默认 shell,并且每次启动终端时都会加载这个“脚本”(至少对于最新版本的 OS X/MacOS)。在此脚本中,添加如下所示的一行(首先备份脚本!):

export PATH="$PATH:/Applications/LilyPond.app/Contents/Resources/bin/"

并保存您的更改。一旦你这样做了,如果你启动一个新的终端窗口,你应该能够运行lilypond并看到打印出来的 Lilypond 使用情况。

一旦你设置好了,我相信你只需要退出并重新启动 PyCharm,它应该会选择新的PATH. (如果失败,请尝试注销并再次登录。)在我的 PyCharm 版本中,我PATH通过转到首选项来检查是否正确,找到设置“构建、执行、部署 > 控制台 > Python 控制台”,查找文本字段称为“环境变量”(其中PATH一个),单击文本字段右侧的“...”按钮以查看详细信息,确保选中“包含父环境变量”,然后单击“该复选框旁边的“显示”链接让 PyC​​harm 弹出一个对话框,其中包含它在运行 Python 控制台操作时传递的所有环境变量。PATH应该在那里列出,并且你的 Lilypond 路径应该包含在它的值中。


我不了解你,但我觉得必须将 MacOS 应用程序的内容直接放在我PATH这样的地方是令人讨厌的,所以为了完整起见,我会提到其他几个解决方案:

  • 使用符号链接使该工具出现在您的PATH. 使用终端,cd到你想要的目录(我喜欢~/bin我的个人工具,一个我自己创建并添加到我PATH很长一段时间的目录的目录),然后创建一个到 Lilypond 的符号链接:ln -s /Applications/LilyPond.app/Contents/Resources/bin/lilypond ..
  • /usr/local/bin您还可以使用Homebrew安装一个纯命令行版本的 Lilypond ,我发现这个工具对于在 MacOS 中处理 Unix 应用程序非常有用。/usr/local/bin,据我所知,应该已经在您的PATH(如果没有,最好添加它!)。这种方法的问题——除了在你的机器上运行多个 Lilypond 安装外,它的 Lilypond 版本往往会有点滞后,这可能会导致 Abjad 出现问题。(目前在2.18.2上,这是最新的稳定版本)。
于 2019-08-24T05:05:00.123 回答