私はbashスクリプトをPythonに移植しようとしています。 bashスクリプトが低速のネットワークをシミュレートするtc
のコマンドを実行し、メインビットは次のようになります:python os.systemの回答が悪いです。 `RTNETLINK answers:そのようなファイルやディレクトリはありません。 '
tc class add dev wlp1s0 parent 1:1 classid 1:12 htb rate 0.5mbps &&
tc qdisc add dev wlp1s0 parent 1:12 netem delay 300ms loss 2%
スクリプトは「ただ」のsudoとして実行して動作します。
Pythonでまったく同じ行が失敗し、彼らはこのように見ている:同様の質問の人で
>>> import os
>>> os.system("sudo tc class add dev wlp1s0 parent 1:1 classid 1:12 htb rate 0.5mbps")
RTNETLINK answers: No such file or directory
512
>>> os.system("sudo tc qdisc add dev wlp1s0 parent 1:12 netem delay 300ms loss 2%")
RTNETLINK answers: No such file or directory
512
たときに実行tc
コマンドは完璧に動作しますので、カーネルモジュールが欠落している示唆して、私はこのような状況が異なる見つけます端末から。それはPython自体が適切にそれを実行するために何かが欠けているようです。 提案やリンクは大歓迎です。ありがとう!
UPDATE:いくつかのより多くの読書と私は今subprocess.call()
を使用するようにスクリプトを更新しましたコメントから、ポインタの後
。これはos.system
の呼び出しを置き換えるものと思われますが、手元に問題はありません。
>>> import subprocess
>>> subprocess.call("tc class add dev wlp1s0 parent 1:1 classid 1:12 htb rate 1.2mbit", shell=True)
RTNETLINK answers: No such file or directory
2
ルート
メインファイルとして別のPythonのファイルを実行するためのpythonを使用する必要がありますしてくださいしてくださいdeprecated 'os.system'の代わりに' subprocess'を使用してください.. – heemayl
こんにちは@heemayl私は同じresu lts。 'subprocess.call(same_command、shell = True)'と同じ出力: 'RTNETLINKの回答:そのようなファイルやディレクトリはありません。 ' – keponk