4

Python 2.6 を使用するサーバーから 2.4 を使用する別のサーバーに Python スクリプトを移動する必要があります。

いくつかの変更を加える必要がありました。今は立ち往生しています。私はこのエラーを受け取り続けます

 File "subprocess.py", line 975, in _execute_child
    raise child_exception
OSError: [Errno 8] Exec format error         

私のログ出力:

Traceback (most recent call last):
File "/cnfs/dev/regions/que/cli/rpntrans_requests/scripts/0.6a/process.py", line 281, in ?
process(filename)
File "/cnfs/dev/regions/que/cli/rpntrans_requests/scripts/0.6a/process.py", line 259, in process
outputs = transformations[tr.tag](file).execute()
File "/cnfs/dev/regions/que/cli/rpntrans_requests/scripts/0.6a/process.py", line 114, in execute
t.execute()
File "/cnfs/dev/regions/que/cli/rpntrans/current/rpntrans.py", line 113, in execute
last_step.execute()
File "/cnfs/dev/regions/que/cli/rpntrans/current/rpntrans.py", line 941, in execute
stdout=sys.stdout, stderr=sys.stderr
File "subprocess.py", line 413, in call
return Popen(*args, **kwargs).wait()
File "subprocess.py", line 543, in __init__
errread, errwrite)
File "subprocess.py", line 975, in _execute_child
raise child_exception
OSError: [Errno 8] Exec format error

rpntrans.py からのコード

    subprocess.call([
        os.path.join(module_root, 'bin/fst2r2c'),
        file,
        v_name, 
        str(r.ip2), str(r.ip2),
        out_file,
        '1', '0',
        '%s (ip1:%i)' % (self.dict[v_name]["desc"], r.ip1),
        self.dict[v_name]["units"],
        self.format,
        self.__get_interpolation(v_name)
    ],
        stdout=sys.stdout, stderr=sys.stderr
    )

誰にもアイデアがありますか?

ありがとうございました

4

2 に答える 2

15

バイナリ実行可能ファイルの場合bin/fst2r2c、それは新しいサーバーに適した形式ですか? (Linux から BSD、または 32 ビットから 64 ビットに移行しましたか?)

bin/fst2r2cがスクリプトの場合、その#!行はそのままですか? (Windowsで編集して導入しました\rか?実行可能ファイルのパス名は新しいマシンで異なりますか?たとえば、/usr/bin/usr/local/bin?)

于 2013-06-04T19:38:06.773 に答える
0

subprocess最初にコマンド ラインから呼び出したいコマンドを実行し、それが機能するかどうかを確認します。Python で生成したコマンドを出力するよりも、つまりos.path.join(module_root, 'bin/fst2r2c')、同じように見えるかどうかを確認してください。

于 2013-06-04T19:37:21.903 に答える