27

我最近买了一台 MacBook,并通过 Anaconda 在上面安装了 Python。这是版本信息:

Python 2.7.6 |Anaconda 1.8.0 (x86_64)| (default, Nov 11 2013, 10:49:09) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin

我希望能够执行以下所有操作:

  1. 无需通过 Launcher 应用程序即可启动 Spyder(例如,通过在 Spotlight 和 Quicksilver 中输入内容)
  2. 从 Finder 运行 Python 代码,大概是通过双击我的 .py 文件或选择并按下 Cmd-O
  3. 通过在 Quicksilver 中键入 Python 脚本的名称来运行 Python 代码(就像它是一个常规程序一样)

这是我尝试过的:

  1. (什么都没有;这里没有想法)
  2. 我已将 .py 文件与 /Users/kuzzooroo/anaconda/python.app/Contents/MacOS/python 相关联,并使它们可执行(chmod u+x)。当我尝试运行应用程序时,它永远不会启动并且我没有收到错误消息(不知道在哪里查看)
  3. 使文件可执行并尝试从 Spotlight 运行它们。结果与#2 相同。

这是我能做的:

  • 从终端窗口运行我的代码,如果我在顶部有正确的 shebang 并且使文件可执行
  • 使用 py2app 生成应用程序。不幸的是,这种方法存在以下缺点:
    • 我经常修改我的脚本,并且不想每次都运行 py2app
    • 即使对于一个简单的脚本,生成的应用程序也是 7 MB
    • 要在某些情况下运行应用程序,我必须在包中挖掘以找到实际的“Unix 可执行文件”并运行它

一旦我有这个工作,我有兴趣做以下事情:
A. 控制哪些脚本在运行时创建控制台窗口,哪些不
B. 控制脚本完成或等待用户时生成的控制台窗口是否消失(我)关闭它
但是,我怀疑一旦我首先弄清楚我将如何调用我的脚本,就很容易弄清楚如何执行这些操作(或者是否可能)。

4

8 回答 8

72

使 spyder 可以从 Spotlight 或 Finder 中调用:

  1. 通过在终端中运行找到您的 spyder 可执行文件所在的位置:

    which spyder
    

    ~/anaconda/bin/spyder如果您通过 Anaconda 安装 spyder,/opt/local/bin/spyder如果您使用 MacPorts 或类似的东西,这应该会产生。

  2. spyder在您的目录中创建一个名为的文件Applications并使其可执行。然后,用上一个命令的输出填充它,然后是&; exit

    touch /Applications/spyder
    chmod +x /Applications/spyder
    echo -e '#!/bin/bash'"\n~/anaconda/bin/spyder &\nexit" >> /Applications/spyder
    

    (如果您使用不同的外壳(例如tcsh),请用bash那个替换)

  3. 在终端->首选项->配置文件->“默认配置文件”->外壳->外壳退出时:选择“如果外壳干净退出则关闭”

可选的:

  1. 从这里下载 spyder 图标并在预览中打开它。按 cmd+C 复制其内容。

  2. 在 Finder 中,/Applications/spyder通过按 cmd+I 找到并打开其“获取信息”窗格。用鼠标选择左上角的图标,然后按 cmd+V。

于 2015-05-04T15:27:54.090 回答
36

接受的答案有两个缺点:启动 spyder 时会出现控制台窗口,并且无法在 Dock 中保留 spyder 图标。可以通过为 spyder 创建适当的 Mac 应用程序包来避免这些 drawbakcs,这非常容易做到。

/usr/local/bin/spyder3which spyder3在我的机器上的结果)转换为传统的 Mac 应用程序:

  1. 创建一个 Mac 应用程序包(基本上是一个包含可执行文件的文件夹结构):

    cd /Applications
    mkdir -p spyder.app/Contents/MacOS
    echo -e '#!/bin/bash'"\n /usr/local/bin/spyder3 $@" >> spyder.app/Contents/MacOS/spyder
    chmod +x spyder.app/Contents/MacOS/spyder
    
  2. 在 Contents 文件夹(即 spyder.app/Contents/Info.plist)中创建一个名为 Info.plist 的纯文本文件,其内容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
    <plist version="0.9">
    <dict>
    <key>CFBundleExecutable</key>
    <string>spyder</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>3.1.4</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleVersion</key>
    <string>3.1.4</string>
    </dict>
    </plist>
    
  3. (可选)创建一个应用程序图标,如已接受答案的第 4 步和第 5 步。

瞧,spyder 突然变得对 Mac 更友好了!

编辑
可以通过以下方式进一步提高 spyder 的 mac 友好性:

  1. 防止通用 python 火箭图标出现在 spyder 图标旁边
    为此,在 spyder 中取消选中选项工具 -> 首选项 -> iPython 控制台 -> 图形 -> 激活(matplotlib)

  2. 使 spyder 成为 .py 文件的默认编辑器。
    这个比较棘手。首先确保 spyder.app/Contents/MacOS/spyder 的内容读取

    #!/bin/bash
    /usr/local/bin/spyder $@
    

然后创建一个包含单个操作“执行 shell 脚本”的自动机脚本。将以下 (bash) 脚本粘贴到其中:

for f in "$@"
do
    open /Applications/spyder.app --args $f
done
if [ -z "$f" ]; then
    open /Applications/spyder.app --args ~
fi

为输入数据选择“作为参数”,如下面的截图所示(截图中缺少“--args ~”,但需要避免在没有任何文件的情况下启动 spyder 时出错)。 例如,将此脚本保存为名为“SpyderOpener”的应用程序。自动化脚本

使 SpyderOpener 成为打开 .py 文件的默认应用程序(通过使用 .py 文件上的 Finder“获取信息”对话框)

于 2017-06-03T22:09:29.197 回答
4

导航到 anaconda/bin,找到 spyder(或 IPython 等),然后将其拖到 Dock 上 - 但将其放在最后的文档部分。然后你可以很容易地访问它,当你点击它时,Mac OS X 会启动一个运行它的 shell,它会出现在应用程序部分,这样你就可以通过点击它来将正在运行的应用程序向前移动。

于 2014-09-24T17:20:05.540 回答
3

您可以使用 Automator 创建将运行 Unix 脚本的应用程序。当它要求输入“应用程序”的文档类型时打开 Automator

搜索并单击“运行 Shell 脚本”。您可以保留 /bin/bash 原样并在框中键入 spyder 的位置(通过在终端中键入 which spyder 给出)。然后你保存文件,你就完成了。这也解决了我在终端在后台运行时遇到的问题,并为您提供了一个可以拖到 Dock 的应用程序。您还可以按照上面的建议更改徽标。

(我是用 Mac OS 10.10 和 Anaconda 2.3.0 做的)

于 2015-09-16T09:12:08.917 回答
2

您可以通过将 Quicksilver 指向来打开 spyder ~/anaconda/bin/spyder(您可以将其添加到您的目录中,以便它始终找到它)。

于 2013-12-23T03:11:57.200 回答
1

我相信在 macOS 中访问 spyder 的最简单方法是通过终端!你把终端放在码头上,当你想打开spyder时,你打开终端并在终端中输入spyder,然后返回键!我喜欢这种方法,因为当我打开终端并按一次或几次向上箭头时,我将访问 spyder 并按回车键运行它!我知道这是一个非常明显和简单的方法,但我想提醒一下!

于 2019-07-04T12:00:59.330 回答
1

一种完全没有技巧的超级快速方法是which sypder在类似//anaconda3/bin/spyder. 复制此文件并将其放在桌面上。每当您需要它时,只需双击即可。

请注意,我建议将其作为替代方案的原因是因为在我的工作机器上,我无权更改 Applications 目录的任何内容。

编辑:一个更快的方法就是这样做: command+spacebar然后输入 Spyder。

于 2019-09-05T10:13:00.347 回答
1

一个不需要使用终端的非常简单的方法本质上是在 Applications 中创建一个 spyder.app 包并将 spyder exec 文件从 Anaconda 复制到此文件夹中。单击包将 spyder 作为应用程序运行,您可以右键单击停靠图标以将其保留在停靠中。

以下是分步说明。

我们首先在 Applications 中创建 spyder.app 文件夹:

  1. 在 Finder 中打开应用程序文件夹。

  2. 右键单击并创建“新文件夹”。

  3. 将文件夹命名为“spyder.app”并允许 .app 扩展名。

然后我们复制 exec spyder 文件:

  1. 在一个新的 Finder 窗口中,打开您的主文件夹(它应该有一个简单的房子图片作为图标)。快捷方式是在 Finder 打开时按 shift+command+H。

  2. 打开 anaconda3 文件夹,然后打开名为“bin”的文件夹。

  3. 找到名为“spyder”的 exec 文件,然后右键单击以复制该文件。

注意:如果您的主目录中没有安装 anaconda3,只需在 Finder 中搜索文件名完全匹配的“anaconda3”并打开文件。

将复制的 exec 文件粘贴到 spyder.app 包中:

  1. 在打开到应用程序的 Finder 窗口中,右键单击上面创建的 spyder.app 并选择“显示包内容”。

  2. 右键单击窗口并粘贴 exec 文件。

现在,当您返回 Applications 文件夹时,双击 spyder.app 包,spyder 应该会运行。右键单击 Dock 中的图标并选择“保留在 Dock”中,以便在不运行时将应用程序保留在 Dock 中。您还可以按照原始答案的 4 和 5 所示为应用创建图标。

于 2018-12-28T01:55:57.833 回答