私はシェルの使用が初めてで、$HOME
すべてのPythonスクリプトを置くことができるディレクトリを作成したいと思います。 Mac上の任意のフォルダに移動して、特定のファイル、つまりスクリプトからこれらのスクリプトを実行できるように、そのディレクトリへのパスを設定したいと思います。このスクリプトへの入力として使用されるファイルと同じディレクトリに含める必要はありません。
私はこれを読み、これを私の.zshrc
ファイルに追加しました。
export PATH="$HOME/python_functions/bin:$PATH"
sleep_plotter.py
それからtoというスクリプトを追加しましたがpython_functions/bin
、ここに今後すべてのスクリプトを入れる予定です。
ただし、このスクリプトの入力として使用するテキストファイルを含むフォルダに移動して入力すると(python sleep_plotter.py 113testCtM113.txt
最後のパラメータはスクリプトのテキストファイル入力です)、次のエラーメッセージが表示されます。
python: can't open file 'sleep_plotter.py': [Errno 2] No such file or directory
ただし、呼び出しパスを使用すると、echo $PATH
次のようになります。
/Users/myname/python_functions/bin:
sleep_plotter.py
これにより、Pythonコマンドを実行するときにPythonがそのディレクトリを探しているので、このファイルが含まれていない別のフォルダにあっても実行できる必要があることを理解しています。
私はMac OSX 10.11.2、zsh、Anaconda 2.3.0を使用しています。
答え1
PATH
変数は、コマンドの実行時に検索されるディレクトリを定義します。ただし、これを実行すると、python sleep_plotter.py 113testCtM113.txt
プログラム(コマンド)sleep_plotter.py
への引数になります。python
ShellはPATH
findを使用しますpython
が、その引数は使用しません。
スクリプトに実行可能なプロパティを追加できます。
$ chmod +x /Users/myname/python_functions/bin/sleep_plotter.py
1つ追加シェルボーンPythonスクリプトの一番上の順序(最初の行):
#!/usr/bin/env python
スクリプトをコマンドとして直接実行します。
$ sleep_plotter.py 113testCtM113.txt
答え2
Pythonを展開して別のディレクトリを検索するには、2つのことを行う必要があります。 PYTHONPATH変数を設定し、-m
Pythonでオプションを使用することです。
In(何も~/.zshrc
ありません):$PATH
export PYTHONPATH="$HOME/python_functions/bin"
端末で使用:
python -m sleep_plotter 113testCtM113.txt
.py
pythonファイル拡張子を省略する必要があるため、前に入力したのと同じです。