web-dev-qa-db-ja.com

OSXでpythonおよびSpyderを呼び出す方法

最近、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. ランチャーアプリケーションを介さずにSpyderを起動します(たとえば、SpotlightとQuicksilverに入力することで)
  2. おそらく.pyファイルをダブルクリックするか、Cmd-Oを選択して押して、FinderからPythonコードを実行します。
  3. Pythonスクリプトの名前をQuicksilverに入力してPythonコードを実行します(通常のプログラムであるかのように)

私が試したものは次のとおりです。

  1. (何もない;ここにアイデアはない)
  2. .pyファイルを/Users/kuzzooroo/anaconda/python.app/Contents/MacOS/pythonに関連付けて実行可能にしました(chmod u + x)。アプリケーションを実行しようとすると、決して起動せず、エラーメッセージが表示されません(どこを見ればいいのかわかりません)
  3. ファイルを実行可能にし、Spotlightから実行しようとしました。 #2と同じ結果。

ここに私がcanすることを示します:

  • 正しいシェバンが上にあり、ファイルを実行可能にした場合、ターミナルウィンドウからコードを実行します
  • Py2appを使用してアプリケーションを生成します。残念ながら、この方法には次の欠点があります。
    • 私は頻繁にスクリプトを変更しますが、毎回py2appを実行する必要はありません。
    • 些細なスクリプトであっても、結果のアプリは7 MBです
    • いくつかのコンテキストでアプリケーションを実行するには、バンドルを掘り下げて実際の「Unix実行可能ファイル」を見つけ、代わりに実行する必要があります

これが機能したら、次のことを行うことに興味があります。
A。どのスクリプトが実行時にコンソールウィンドウを作成し、どのスクリプトを作成しないかを制御する
B。スクリプトの完了時に結果のコンソールウィンドウを表示するか、ユーザー(私)が閉じるのを待つかを制御する
ただし、最初にスクリプトをどのように呼び出すかを理解したら、これらの方法(または可能かどうか)を理解するのは簡単かもしれません。

22
kuzzooroo

SpotlightまたはFinderからスパイダーを呼び出し可能にするには:

  1. ターミナルで実行して、スパイダー実行可能ファイルの場所を見つけます。

    which spyder
    

    これにより、~/anaconda/bin/spyder Anaconda経由でスパイダーをインストールした場合、/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
    
  3. [ターミナル]-> [設定]-> [プロファイル]-> [デフォルトプロファイル]->シェル->シェルが終了するとき:[シェルが正常に終了した場合は閉じる]を選択します。

オプション:

  1. here からスパイダーアイコンをダウンロードし、プレビューで開きます。 cmd + Cを押してその内容をコピーします。

  2. Finderで、/Applications/spyderそしてcmd + Iを押して「情報を見る」ペインを開きます。マウスの左上隅にあるアイコンを選択し、cmd + Vを押します。

62
Thomas

受け入れられた答えには2つの欠点があります。スパイダーを起動するとコンソールウィンドウが表示され、スパイダーアイコンをドックに保持できません。これらのdrawbakcsは、スパイダー用の適切なMacアプリケーションバンドルを作成することで回避できます。これは驚くほど簡単です。

変換する /usr/local/bin/spyder3 (結果として which 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のようなアプリアイコンを作成します。

Voilà、スパイダーが突然、はるかにMacフレンドリーになりました!

[〜#〜] edit [〜#〜]
次の方法でスパイダーのMacの使いやすさをさらに改善できます。

  1. ジェネリックpythonロケットアイコンがスパイダーアイコンの横に表示されるのを防ぐ
    このためには、スパイダーでオプションツール->設定-> iPythonコンソール->グラフィックス->有効化(matplotlib)のチェックを外します。

  2. .pyファイルのスパイダーをデフォルトのエディターにする
    これはもっとトリッキーです。最初に、spyder.app/Contents/MacOS/spyderのコンテンツが読み取ることを確認します

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

次に、単一のアクション「シェルスクリプトの実行」を含むオートマトンスクリプトを作成します。次の(bash)スクリプトを貼り付けます:

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

以下のスクリーンショットに示すように、入力データに「引数として」を選択します(スクリーンショットには「--args〜」がありませんが、ファイルなしでスパイダーを起動するときのエラーを回避する必要があります)。 automator script
たとえば、このスクリプトを「SpyderOpener」というアプリケーションとして保存します。

SpyderOpenerを.pyファイルを開くためのデフォルトのアプリケーションにします(.pyファイルでFinderの「情報を見る」ダイアログを使用して)

25
topoman

Anaconda/binに移動し、スパイダー(またはIPythonなど)を見つけてドックにドラッグしますが、最後のドキュメントセクションに配置します。その後、簡単にアクセスできます。クリックすると、Mac OS Xはそれを実行するシェルを起動し、アプリケーションセクションに表示されるので、クリックして実行中のアプリケーションを前面に表示できます。

4
Andy Anderson

Automatorを使用して、Unixスクリプトを実行するアプリケーションを作成できます。 「Application」を置くドキュメントタイプを要求するときにAutomatorを開きます

「シェルスクリプトの実行」を検索してクリックします。/bin/bashをそのままにして、ボックスにスパイダーの場所を入力できます(ターミナルでどのスパイダーを入力することで指定されます)。次に、ファイルを保存して完了です。これはまた、ターミナルがバックグラウンドで実行されているときに抱えていた問題を取り除き、ドックにドラッグできるアプリケーションを提供します。上記のようにロゴを変更することもできます。

(Mac OS 10.10とAnaconda 2.3.0でこれを行いました)

3
jncweb

Quicksilverを~/anaconda/bin/spyderにポイントすることでスパイダーを開くことができます(カタログに追加して、常に検索できるようにすることができます)。

2
asmeurer

ターミナルの使用を必要としない非常に簡単な方法は、基本的にアプリケーションでspyder.appパッケージを作成し、Anacondaからこのフォルダーにspyder execファイルをコピーすることです。パッケージをクリックすると、スパイダーがアプリとして実行され、ドックアイコンを右クリックしてドックに保持できます。

以下はステップバイステップの手順です。

最初にアプリケーションで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ファイルを貼り付けます。

ここで、アプリケーションフォルダに戻ったら、spyder.appパッケージをダブルクリックすると、spyderが実行されます。ドックのアイコンを右クリックし、「ドックに保持」を選択して、実行していないときにアプリをドックに保持します。元の回答の4および5に示されているように、アプリのアイコンを作成することもできます。

1
cookiecook

まったくスキルのない素早い方法は、exe(which sypderはこれを達成します)//anaconda3/bin/spyder。このファイルを複製し、デスクトップに配置します。必要なときはいつでもダブルクリックするだけです。

代替としてこれを提案する理由に注意してください。私の作業マシンでは、アプリケーションディレクトリを変更するアクセス権がないためです。

編集:さらに高速な方法は、command + spacebarを実行してから、Spyderと入力することです。

1
A Bear

MacOSでスパイダーにアクセスする最も簡単な方法は、ターミナル経由だと思います!ドックにターミナルを保持し、スパイダーを開きたい場合は、ターミナルを開き、ターミナルにスパイダーを入力してからキーを返します!ターミナルを開いて上向き矢印を1回または数回押すと、スパイダーにアクセスしてプレスリターンで実行するため、この方法が気に入っています。私はそれが非常に明白で簡単な方法であることを知っていますが、私はそれを思い出したかったです!

1
ali HASHEMI