首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从pycharm virtualenv调用lilypond?

如何从pycharm virtualenv调用lilypond?
EN

Stack Overflow用户
提问于 2019-07-09 06:43:26
回答 1查看 160关注 0票数 0

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

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

当我运行一些示例代码时,我只是在run窗口"/bin/sh: lilypond: command not found“中得到了这条消息。

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2019-08-24 13:05:00

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

首先,解释一下这个错误。错误:

代码语言:javascript
复制
/bin/sh: lilypond: command not found

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

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

有几种方法可以解决这个问题,但要点是:您需要使用包含该工具的某个目录更新您的PATH -但您还需要以一种由PyCharm启动的脚本拾取更新后的PATH的方式更新它。

通常,我在~/.bash_profile中进行PATH破解,因为Bash是MacOS中的默认外壳程序,每次我启动终端时都会加载这个“脚本”(至少对于OS /MacOS的最新版本是如此)。在此脚本中,添加类似以下内容的行(首先备份脚本!):

代码语言:javascript
复制
export PATH="$PATH:/Applications/LilyPond.app/Contents/Resources/bin/"

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

一旦你设置好了,我相信你只需要退出并重新启动PyCharm,它应该会拿起新的PATH。(如果失败,请尝试注销并重新登录。)在我的PyCharm版本中,我检查PATH是否正确,方法是转到首选项,找到设置"Build,Execution,Deployment > Console > Python Console",查找名为"Environment Variables“的文本字段( PATH就是其中之一),单击"...”按钮查看详细信息,确保选中了“包含父环境变量”,然后单击复选框旁边的“显示”链接,让PyCharm弹出一个对话框,其中包含它在运行Python控制台操作时传递的所有环境变量。PATH应该在那里列出,并且您的Lilypond路径应该包含在它的值中。

我不知道你是怎么想的,但我发现不得不像这样直接把MacOS应用程序的内部放到我的PATH中是令人反感的,所以为了完整性,我还会提到几个其他的解决方案:

  • 使用符号链接使该工具出现在PATH中已有的目录中。使用终端,cd到你想要的目录(我喜欢~/bin作为我的个人工具,这个目录是我自己创建的,并添加到我的PATH中很长一段时间了),然后创建一个符号链接到/usr/local/bin,因此: Lilypond也可以使用Homebrew安装一个纯命令行版本的Lilypond到MacOS中,我发现这个工具对于在MacOS中争论Unix应用程序是非常有价值的。据我所知,/usr/local/bin应该已经在您的PATH上了(如果没有,最好添加它!)这种方法的问题-除了在您的机器上运行多个Lilypond安装之外,其版本的Lilypond往往会有一点滞后,这可能会导致Abjad的问题。(它目前在最新的稳定版本2.18.2上)。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56943346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档