web-dev-qa-db-ja.com

pythonコマンドラインから直接スクリプトを実行

#!/usr/bin/env python

それをスクリプトの先頭に置きました。 python programname.pyを必要とせずに、コマンドラインからスクリプトを実行可能にする必要があることを見てきました。誤解していない限り、スクリプトの先頭に上記の行がある限り、programname.pyを使用できるはずです。これは正しいです?

私にとってはうまくいきません。「呼び出し」の開始時にpythonを使用する必要があることを示すエラーが表示されるだけです。

9
confused

Pythonスクリプトのユニバーサル実行

シバンなしでほぼ​​普遍的に実行できます(#!)と

python myscript.py

またはほぼ同等(現在のディレクトリをパスに配置し、myscriptという名前のモジュールを実行します)(できればこれを!)

python -m myscript

コマンドラインから、Pythonがインストールされ、パス環境変数にある限り(つまり、インストールされた場合、通常はpythonで実行するように設定されている場合) )。

シバンズ(#!)はUnixのものです。

使用しているShebangは、通常Unixプラットフォーム(通常AppleまたはLinux)で実行するためのものです。Windowsは通常、Sybangを使用するためにcygwinを必要とします。

通常は、システムパスでpythonが利用可能なものであれば何でもデフォルトに設定できます。

#!/usr/bin/env python

Unixを使用していると仮定すると、python setup、

#!/usr/bin/python

ぐちゃぐちゃ

Unix whichコマンドを使用すると、現在使用しているpythonを確認できます。したがって、pythonから来て、このコマンドを使用します:

which python

またはWindows(cygwinはおそらくShebangを実行できます):

where python

Linux/Unixでは、その方法でファイルを実行するための実行権限が必要になります。 chmodを使用する

chmod +x myscript.py

(chmodはWindowsのCygwinにも適用される場合があります)

ルートとして実行していない場合は、Sudoが必要な場合があります。

Sudo chmod +x myscript.py

そして、(同じディレクトリ内で)実行しようとします

./myscript.py 
23
Aaron Hall

ファイルを実行可能にする

Sudo chmod +x /path/to/file.py

そして、file.pyと同じディレクトリから:

./file.py
6
jpwagner

この方法で webbrowser モジュールを使用することもできます:

python -m webbrowser -t "http://www.python.org"
1
Andrew K