リモートで実行されているPythonスクリプトがあります。このコードの最後のセグメントは、さらにレポートするために、スクリプトのディレクトリ(リモート)に出力ファイルを作成することになっています。
スクリプトはssh上で実行されています:
ssh -c blowfish remoteAddr python -u pythonScript.py $1 $2 $3
これにより、スクリプトに渡された引数(私はbashを使用しています)をPythonスクリプトへの入力にすることができます。
リモート側では、出力ファイル(.csv)を作成しようとしても役に立たないことがわかっています。
csvFile = open('results.csv','w')
csvFile.write(someResults)
csvFile.close()
IOError(Errno 13)を返します:アクセスが拒否されました'results.csv'。エラーは、私のオープンを原因としてマークしています。
ls -l
Pythonが実行されているディレクトリでを実行すると、次のようになります。
-rwxr-xr-x 1 jmschen operations 5003 <dateTimeStamp> pythonScript.py
アクセスに問題はないはずだと思います。また、私は以下を試しました:
os.chmod(<WherePythonScriptLives>,0777)
csvFile = open("results.csv","w")
csvFile.write(someResults)
csvFile.close()
これも同じエラーを生成します。
このコードをローカルで実行すると(ターミナルにsshした後)、同じIOErrorが発生します。ただし、ディレクトリ(test.py)に作成したPythonスクリプト
import os
f = open("results.csv","w")
f.write("Blah Blah Blah")
f.close()
うまく動作します。これは、Pythonをリモートで実行しているという事実が問題である可能性があると私に思わせますか?
要件:
- Unix上のPython2.4.3(アップグレードできません)
- 外部モジュール/パッケージはありません(これには必要だとは思いませんが)
ssh呼び出しが原因である可能性があるため、この要件は削除されています。ssh -c blowfish remoteAddr python -u pythonScript.py $1 $2 $3
通話を変更できません