@ Serveur partagé / Environnement sans pyenv
ou ʻanaconda`
ʻGugu qu'est-ce que l'IPC :: Open3`. ↓
subprocess
est recommandé.
Pourtant,,,
↓
Dans la série «Python» 2, le standard n'est pas utilisé et il est clairement indiqué que «subprocess32» peut être utilisé.
Qu'est-ce que c'est? J'aimerais pouvoir le remplacer normalement.
Je n'ai pas de privilèges root, alors utilisez pip
pour le saisir localement.
Bien sûr, la version de Python
devrait être 2 séries.
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
Je pense que c'est plus comme Python
d'utiliser try
, mais ...
Popen
Popen
--Type de chaîne en 2 séries --Type d'octet en 3 séries
rends le. Il ne peut pas être géré correctement à moins qu'il ne soit changé en chaîne [^ 2].
[^ 2]: Le script ne passe pas à moins que decode (" utf-8 ")
ne soit affiché même si ʻutf-8ne l'est pas @
Python2.6.6`
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)
Erreur dans comunicate () [1]
.
Vous pouvez l'utiliser comme ʻIPC :: Open3normalement, mais pour le moment, habituons-nous au
comunicate` recommandé.
python
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#Importer des bibliothèques
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