私は答えをグーグルで試しましたが、運がありませんでした。
ワークススーパーコンピューターサーバーを使用する必要がありますが、Pythonスクリプトを実行するには、シェルスクリプトを介して実行する必要があります。
たとえばjob.sh
、実行したいpython_script.py
どうすればこれを達成できますか?
私は答えをグーグルで試しましたが、運がありませんでした。
ワークススーパーコンピューターサーバーを使用する必要がありますが、Pythonスクリプトを実行するには、シェルスクリプトを介して実行する必要があります。
たとえばjob.sh
、実行したいpython_script.py
どうすればこれを達成できますか?
回答:
Python実行可能ファイルがPATH環境変数に含まれていることを確認してから、スクリプトに追加します
python path/to/the/python_script.py
詳細:
#!/bin/sh python python_script.py
chmod u+x job.sh
./job.sh
python --version
でき、でバージョンを強制できますpython3 hello.py
。
source PATH/TO/VENV/bin/activate
から呼び出す必要がありますpython python_script.py
/path/to/Python: can't open file '/path/to/script': [Errno 1] Operation not permitted
私のpythonコードをbashスクリプト内にインラインで含める方法はありますか?
あなたはPythonのファイルがあるとhello.py
呼ばれるファイルを作成job.sh
含まれてい
#!/bin/bash
python hello.py
使用して実行可能としてマークする
$ chmod +x job.sh
それを実行します
$ ./job.sh
スクリプトhello.py
を変更し、これを最初の行として追加します
#!/usr/bin/env python
使用して実行可能としてマークする
$ chmod +x hello.py
それを実行します
$ ./hello.py
#!/usr/bin/env python
ます。システムの正しいPythonバージョン+パスを参照していることを確認してください。
イムホ、書く
python /path/to/script.py
特に最近ではかなり間違っています。どのパイソン?python2.6?2.7?3.0?3.1?ほとんどの場合、pythonファイルのshebangタグでpythonバージョンを指定する必要があります。私は使用することをお勧めします
#!/ usr / bin / env python2 #or python2.6 or python3 or python3.1互換性のため。
そのような場合、スクリプトを実行可能にして直接呼び出す方がはるかに優れています。
#!/ bin / bash /path/to/script.py
このようにして、必要なpythonのバージョンは1つのファイルにのみ書き込まれます。最近のシステムのほとんどでは、当面はpython2とpython3が使用されており、シンボリックリンクpythonがpython3をポイントしているのに、ほとんどの人がpython2をポイントしていると予想しています。
python script.py param
か?
次のプログラムを次のように保存しますprint.py
。
#!/usr/bin/python3
print('Hello World')
次に、ターミナルタイプで:
chmod +x print.py
./print.py
これは私にとって最も効果的です。これをスクリプトの先頭に追加します。
#!c:/Python27/python.exe
(C:\ Python27 \ python.exeは私のマシンのpython.exeへのパスです)次にスクリプトを実行します:
chmod +x script-name.py && script-name.py
これは私にとってはうまくいきます:
新しいシェルファイルジョブを作成します。だからとしましょう:
touch job.sh
Pythonスクリプトを実行するコマンドを追加します(そのPythonにコマンドライン引数を追加することもできます。通常、コマンドライン引数を事前定義します)。
chmod +x job.sh
内部job.sh
に次のpyファイルを追加してみましょう。
python_file.py argument1 argument2 argument3 >> testpy-output.txt && echo "Done with python_file.py"
python_file1.py argument1 argument2 argument3 >> testpy-output.txt && echo "Done with python_file1.py"
Done with python_file.py
Done with python_file1.py
私は通常、事前に定義された異なる引数で複数のpythonファイルを実行する必要がある場合にこれを使用します。
注:ここで何が行われているのかを簡単に説明します。
python_file.py argument1 argument2 argument3 >> testpy-output.txt && echo "completed with python_file.py" .
python python_file.py
、プレーンでシンプル。次に、>>はこの.pyファイルの出力を印刷してtestpy-output.txtファイルに保存します。他の投稿はすべてを語っているので(そして私は以下を探している間にこの投稿に出会いました)。
別のpythonスクリプトからpythonスクリプトを実行する方法は次のとおりです。
Python 2:
execfile("somefile.py", global_vars, local_vars)
Python 3:
with open("somefile.py") as f:
code = compile(f.read(), "somefile.py", 'exec')
exec(code, global_vars, local_vars)
そして、あなたは他のいくつかを提供することによって引数を供給することができます sys.argv
python python_script.py
シェルスクリプトを入れてみましたか?