@ Shared Server / Umgebung ohne pyenv
oder anaconda
Googeln, was "IPC :: Open3" entspricht. ↓
Unterprozess wird empfohlen.
Jedoch,,,
↓
In der Python
2-Serie wird der Standard nicht verwendet, und es wird klar angegeben, dass subprocess32
verwendet werden kann.
Was ist das? Ich wünschte, ich könnte es normal ersetzen.
Ich habe keine Root-Rechte, also benutze pip
, um es lokal einzugeben.
Natürlich sollte die Version von Python
2 Serien sein.
python
$ pip install --install-option="--prefix=$HOME/share" subprocess32
#$ export PYTHONPATH=$HOME/share/lib64/python2.6/site-packages:
python
import sys
import platform
py_version = platform.python_version_tuple()[0]
if py_version == 2:
sys.path.append('/home/bunzaemon/share/lib64/python2.6/site-packages')
from subprocess32 import Popen, PIPE
else:
from subprocess import Popen, PIPE
Ich denke, es ist eher wie "Python", "try" zu verwenden, aber ...
Popen
Popen
Gib es zurück. Es kann nicht richtig behandelt werden, es sei denn, es wird in Zeichenfolge [^ 2] geändert.
[^ 2]: Das Skript wird nur übergeben, wenn decode (" utf-8 ")
ausgegeben wird, obwohl utf-8
nicht @ Python2.6.6
ausgegeben wird
python
cmd = 'ls -al'
p = Popen(cmd.split(), stdout=PIPE, stderr=PIPE)
out = ( p.communicate()[0].split("\n") if py_version == 2 else
p.communicate()[0].decode("utf-8").split("\n") )
for line in out:
print (line)
Fehler in comunicate () [1]
.
Sie können es normalerweise wie "IPC :: Open3" verwenden, aber vorerst gewöhnen wir uns an die empfohlene "Kommunikation".
python
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#Bibliotheken importieren
import sys
import platform
py_version = platform.python_version_tuple()[0]
if py_version == 2:
sys.path.append('/home/bunzaemon/share/lib64/python2.6/site-packages')
from subprocess32 import Popen, PIPE
else:
from subprocess import Popen, PIPE
cmd = 'ls -al'
p = Popen(cmd.split(), stdout=PIPE, stderr=PIPE)
out = ( p.communicate()[0].split("\n") if py_version == 2 else
p.communicate()[0].decode("utf-8").split("\n") )
for line in out:
print (line)
Recommended Posts