1

私は Python 2.7.5 で sh を使用してcurlandmkdirのようなシェル プログラムを呼び出していますが、Eclipse 4.3.0 の PyDev プラグイン 2.7.5 では使用しています。次の行でUnresolved Importエラーが発生します。

from sh import curl, printenv, mkdir, cat

上記のコードを Python シェルで実行できます。環境設定のウィンドウのペインにsh含めるパスがあるので、それは問題ではないと思います。LibrariesInterpreter - Python

4

2 に答える 2

2

subprocess モジュールを使用して、コンソール コマンドを呼び出してみてください。例えば:

from subprocess import call
dir_name = '/foo/bar/'
call('mkdir %s'%dir_name, shell=True)
于 2013-06-26T21:14:28.357 に答える
1

ビルが言ったように、ここではサブプロセスが良い選択です。個人的には Popen を使用することをお勧めします。これは、ブロックされず、コマンドがその communicate() メソッドで終了するのを待つことができるためです。このメソッドは stdout と stderr も返します。また、可能な場合は shell=True を使用しないでください。使用法:

import subprocess
testSubprocess = subprocess.Popen(['mkdir', dir_name], stdout=subprocess.PIPE)
testOut, testErr = testSubprocess.communicate()
于 2013-06-26T21:23:07.100 に答える