如何使pycharm virtualenv调用lilypond?

时间:2019-07-08 22:43:25

标签: pycharm lilypond

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

我已尝试按照lilypond网站上的说明进行操作。我读了一些有关配置运行配置的内容,但似乎无法使其正常工作。我不知道如何在PyCharm中为virtualenv添加路径。

当我运行一些示例代码时,我只是在运行窗口“ / bin / sh:lilypond:命令未找到”中得到了它。

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

1 个答案:

答案 0 :(得分:0)

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

首先,解释错误。错误:

/bin/sh: lilypond: command not found

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

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

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

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

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

并保存您的更改。完成此操作后,如果启动新的“终端”窗口,则应该能够运行lilypond并查看打印出的Lilypond用法。

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


我不了解您,但是我发现像这样直接将MacOS应用的勇气直接放入PATH中实在令人不快,因此为完整性起见,我将提及其他两个解决方案:

  • 使用符号链接将工具显示在PATH中已经存在的目录中。使用终端,cd到您想要的目录(我喜欢~/bin作为我的个人工具,是我自己创建的目录,很长一段时间后又添加到我的PATH中),然后创建因此,指向Lilypond的符号链接为:ln -s /Applications/LilyPond.app/Contents/Resources/bin/lilypond .
  • 您还可以使用Homebrew将纯纯命令行版本的Lilypond安装到/usr/local/bin中,该工具对于在MacOS中处理Unix应用程序非常有用。据我所知,/usr/local/bin应该已经在您的PATH上了(如果没有,最好添加它!)。这种方法的问题–除了在您的计算机上运行多个Lilypond安装之外,其Lilypond版本往往会滞后一些,这可能会导致Abjad出现问题。 (当前版本为2.18.2,它是最新的稳定版本)。