2011-01-17 4 views
7

私はMac OS 10.6 Snow Leopardを使用しています。PATH変数にディレクトリを追加しようとしています。ちょっとタイプした小さなスクリプトを実行できます。ターミナルプロンプトでpython alarm.pyを実行します。完全パスを入力せずに、Mac OS Xの端末からPythonスクリプトを実行するにはどうしたらいいですか?

私は自分の.profileファイルにパスを入れて、$ PATHをエコーすると表示されるようですが、pythonはまだそのディレクトリに置いたスクリプトを見つけることができません。

はここに私のホームディレクトリにある私の.profileファイルの内容です:

~ toby$ vim .profile 
export PATH=/Users/tobylieven/Documents/my_scripts:$PATH 

は、ここですべてがうまくようだエコーの$ PATHの出力です:

~ toby$ echo $PATH 
/Users/tobylieven/Documents/my_scripts:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 

ここで私はスクリプトがあります実行しようとしています:

~ toby$ ls /Users/tobylieven/Documents/my_scripts 
[email protected] 1 tobylieven staff 276 17 Jan 21:17 alarm.py 

ここで私はスクリプトと失敗メッセージを実行するために使用しようとしているコマンドです代わりに:

~ toby$ python alarm.py 
python: can't open file 'alarm.py': [Errno 2] No such file or directory 

誰かが私が間違っているかもしれないアイデアがあれば、それは素晴らしいでしょう。 ありがとうございました。

答えて

15

PATHはないPythonスクリプトのために、唯一の実行可能ファイルです。あなたのPythonスクリプトの先頭に以下を追加します。

#!/usr/bin/env python 

とその後

sudo chmod a+x /Users/tobylieven/Documents/my_scripts/alarm.py 

を実行して、あなただけのalarm.pyがあなたのプログラムを実行するために入力することができます。

#!/bin/python 

ファイルには非常に最初の行として:インクルードする

+1

恐ろしい!できます :)。ありがとう:D。人々が知っているように、alt + 3を押すと、macbookプロに「#」と入力します。 – tobuslieven

3

Python固有のパス変数PYTHONPATHを変更する必要があります。

だから:

export PYTHONPATH=/Users/tobylieven/Documents/my_scripts 

はあなたが働いて取得する必要があります。

参照:Python Module Search path

4

変更alarm.py。

(または/ usr/binに/ pythonの、あなたのpythonインタプリタが置かれている場所に応じて次のように入力することによって、これを把握することができます。。which pythonを端末内に)

それからちょうどpython alarm.pyの代わりにalarm.pyを実行することができます。

例えば:

~ toby$ alarm.py 

そしてphihag数秒で私を打つ誰が正しい、あなたはalarm.pyする(chmodコマンドを経由して)実行権限を追加する必要があります。

0

私がWindowsから来たOS Xで本当に苦労したのは、現在のスクリプトのディレクトリを取得するのが非常に難しいということです。

これが見つかりました。

#! /bin/zsh 
cd "${0:h}" 

これで、pythonファイルの正確なパスを知る代わりに、実行されたスクリプトに関連してpythonファイルを実行することができました。 これは役立つかもしれませんが、私はスクリプトと.commandファイルをうまく機能させるためにこれをたくさん使っています。

関連する問題