0
virtualenvを実行してpipをローカルにインストールしようとしています。以下のルーチンを実行すると、なぜ失敗したのかについて私に何らかの兆候を出すことはできません。私はPopen("source env/bin/activate && pip install package", shell=True)
でそれを行うことができますpythonサブプロセスでコマンドを連続してシェルしようとしています
source env/bin/activate
(env) pip install [packages]
次のような何かをしようとしているが、私はそれが私のルーチンで定義されている方法でそれを処理するために期待しています。
アイデア?あなたが(stdoutにそれをリダイレクトする)stderr=subprocess.PIPE
またはstderr=subprocess.STDOUT
を指定する必要がありstderr
取得するには
def install_pkgs(self):
proc = subprocess.Popen(["source %s" % (os.path.join(self._commons['dst_dir'], 'env/bin/activate'),)],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
shell=True,
executable='/bin/bash')
proc.stdin.write(str.encode("pip install --upgrade %s\n" % (" ".join(self._loaded_packages),)))
output, error = proc.communicate()
print(output)
print(error)
残念ながらまだピップでダウンロードを続行するために失敗し、それを直接呼び出す:あなたが試みることができるパッケージがアップグレード/インストールするには
– battlemidget